Pythonda matlotlib ilə logaritmik logaritmik baltalar

Matplotlib istifadə edərək, bir logarithmic ox ilə bir grafik qurmaq istəyirik.

Sənədləri oxudum, ancaq sözdizimi anlaya bilmirəm. Mən bilirəm ki, bu, süjet arqumentlərində ehtimal "scale = linear" kimi sadə bir şeydir, amma bunun doğru olduğunu başa düşmürəm.

Nümunə proqramı:

 from pylab import * import matplotlib.pyplot as pyplot a = [ pow(10,i) for i in range(10) ] fig = pyplot.figure() ax = fig.add_subplot(2,1,1) line, = ax.plot(a, color='blue', lw=2) show() 
236
21 апр. 21 Martda Jim tərəfindən təyin olundu 2009-04-21 21:00 '09 9:00 PM 2009-04-21 21:00
@ 5 cavab

Axes.set_yscale metodundan istifadə edə bilərsiniz. Axs obyektini yaratdıqdan sonra ölçəni dəyişməyə imkan verir. Bundan əlavə, istifadəçi sizə lazım olan bir ölçək seçə bilməsi üçün bir nəzarət yaratmağa imkan verir.

Əlavə etmək üçün müvafiq xətt əlavə edin:

 ax.set_yscale('log') 

Doğrusal ölçüyə dönmək üçün "lineer" istifadə edə bilərsiniz. Kodunuz aşağıdakı kimi görünür:

 from pylab import * import matplotlib.pyplot as pyplot a = [ pow(10,i) for i in range(10) ] fig = pyplot.figure() ax = fig.add_subplot(2,1,1) line, = ax.plot(a, color='blue', lw=2) ax.set_yscale('log') show() 
253
26 июля '09 в 3:14 2009-07-26 03:14 cavab Mathieu tərəfindən 26 iyul 2009-cu ildə 3:14 2009-07-26 03:14 tarixində verilir

Birincisi, pylabpyplot qarışdırmaq çox rahat deyil. Bundan başqa, pylab istifadə etmək üçün tapança stil üstünlük təşkil edir .

Yalnız pyplot funksiyalarını istifadə edərək, bəzi təmizlənmiş pyplot :

 from matplotlib import pyplot a = [ pow(10,i) for i in range(10) ] pyplot.subplot(2,1,1) pyplot.plot(a, color='blue', lw=2) pyplot.yscale('log') pyplot.show() 
border=0

Müvafiq funksiya pyplot.yscale() . Nesne yönümlü versiyasını istifadə edirsinizsə, onu Axes.set_yscale() metodu ilə əvəz edin. X pyplot.xscale() (və ya Axes.set_xscale() ) istifadə edərək pyplot.xscale() .

Sualımı yoxlayın "log" və "symlog" arasındakı fərq nədir? matplotlib təklif edir ki, qrafik bir neçə nümunələri görmək.

219
18 авг. Cavab Danilson Sá Maia 18 aug. 2010-08-18 18:10 '10 at 18:10 2010-08-18 18:10

Yalnız qrafik əvəzinə semilogiyalardan istifadə etmək lazımdır:

 from pylab import * import matplotlib.pyplot as pyplot a = [ pow(10,i) for i in range(10) ] fig = pyplot.figure() ax = fig.add_subplot(2,1,1) line, = ax.semilogy(a, color='blue', lw=2) show() 
53
21 апр. Scott McCammon tərəfindən verilmiş cavab Apr 21 2009-04-21 21:07 '09 at 09:07 PM 2009-04-21 21:07

Bəzi şərhlər ax.set_yscale('log') "ən xoş" həll olacağını qeyd etdiyinə görə, bu bir az mövzu olduğunu ax.set_yscale('log') . Mən bir rebuttal tələb oluna bilər düşündüm. Histogram və qrafiklər üçün ax.set_yscale('log') istifadə ax.set_yscale('log') məsləhət ax.set_yscale('log') . Mənim versiyamda (0.99.1.1) bir sıra göstərmə problemləri ilə qarşılaşıram - bu, bir problemin olmadığını bilmirəm. Bununla birlikdə, hər iki barda və histdə y ölçüsünü yaxşı işləyən bir günlükə təyin etmək üçün isteğe bağlı arqumentlər var.

Bağlantılar: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.bar

http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hist

8
08 апр. cavab user3465408 08 apr tərəfindən verilir . 2014-04-08 21:14 '14 at 21:14 2014-04-08 21:14

Yəni, tez-tez ziyarət etdiyim kimi, istifadə edilməmiş bir API istifadə edirsinizsə (ipythonda çox istifadə edirəm), onda bu yalnız

 yscale('log') plot(...) 

Ümid edirəm ki, bu, kimsə sadə bir cavab tapmağa kömək edir!:.)

4
22 марта '17 в 3:56 2017-03-22 03:56 Cavab crazy2be mart 22 '17 3:56 2017-03-22 03:56 verilir

Etiketler haqqında digər suallar və ya bir sual