Saya ingin memplot grafik dengan satu sumbu logaritmik menggunakan matplotlib.
Saya sudah membaca dokumen, tetapi tidak bisa mengetahui sintaksnya. Saya tahu bahwa itu mungkin sesuatu yang sederhana seperti 'scale=linear'
dalam argumen plot, tapi sepertinya saya tidak bisa memperbaikinya
Program sampel:
import pylab
import matplotlib.pyplot as plt
a = [pow(10, i) for i in range(10)]
fig = plt.figure()
ax = fig.add_subplot(2, 1, 1)
line, = ax.plot(a, color='blue', lw=2)
pylab.show()
python
matplotlib
scale
logarithm
Max Ghenis
sumber
sumber
semilogy()
. Selain itu, lebih mudah untuk langsung menggunakanpyplot.yscale()
daripada menggunakanax.set_yscale('log')
, karena tidak perlu mendapatkanax
objek (yang tidak selalu tersedia segera).loglog()
atau pada x-axis only trysemilogx()
ax
objek eksplisit yang digunakanpyplot
yang hanya mungkin berlaku untuk Axe yang Anda inginkan.Pertama-tama, itu tidak rapi untuk dicampur
pylab
danpyplot
dikodekan. Terlebih lagi, gaya pyplot lebih disukai daripada menggunakan pylab .Berikut ini adalah kode yang sedikit dibersihkan, hanya menggunakan
pyplot
fungsi:Fungsi yang relevan adalah
pyplot.yscale()
. Jika Anda menggunakan versi berorientasi objek, ganti dengan metodeAxes.set_yscale()
. Ingatlah bahwa Anda juga dapat mengubah skala sumbu X, menggunakanpyplot.xscale()
(atauAxes.set_xscale()
).Periksa pertanyaan saya. Apa perbedaan antara 'log' dan 'symlog'? untuk melihat beberapa contoh skala grafik yang ditawarkan matplotlib.
sumber
pyplot.semilogy()
lebih langsung.Anda hanya perlu menggunakan semilogi alih-alih plot:
sumber
jika Anda ingin mengubah basis logaritma, cukup tambahkan:
sumber
Saya tahu ini sedikit di luar topik, karena beberapa komentar menyebutkan
ax.set_yscale('log')
untuk menjadi solusi "terbaik" saya pikir bantahan bisa terjadi. Saya tidak akan merekomendasikan penggunaanax.set_yscale('log')
untuk histogram dan plot bar. Dalam versi saya (0.99.1.1) saya mengalami beberapa masalah rendering - tidak yakin seberapa umum masalah ini. Namun kedua bar dan hist memiliki argumen opsional untuk mengatur skala y untuk login, yang berfungsi dengan baik.referensi: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.bar
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hist
sumber
Jadi jika Anda hanya menggunakan API yang tidak canggih, seperti saya sering (saya sering menggunakannya di ipython), maka ini hanyalah
Semoga ini bisa membantu seseorang mencari jawaban yang sederhana! :)
sumber
Anda dapat menggunakan kode di bawah ini:
sumber