python - رسم محاور لوغاريتمي مع matplotlib في بيثون




scale logarithm (4)

أعرف أن هذا الموضوع خارج الموضوع قليلاً ، حيث ذكرت بعض التعليقات أن ax.set_yscale('log') هو حل "أجمل" ظننت أن الطعن قد يكون مستحقًا. لا أنصح باستخدام ax.set_yscale('log') البيانية الشريطية. في النسخة الخاصة بي (0.99.1.1) أواجه بعض مشاكل التقديم - لست متأكداً من مدى عمومية هذه المشكلة. ومع ذلك ، يحتوي كل من الشريط والتاريخ على وسيطات اختيارية لتعيين مقياس y للتسجيل ، الأمر الذي يعمل بشكل جيد.

المراجع: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.bar

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

أريد رسم رسم بياني بمحور لوغاريتمي واحد باستخدام matplotlib.

لقد قرأت المستندات ، لكن لا يمكنني معرفة التركيب. أعلم أنه من المحتمل أن يكون شيئًا بسيطًا مثل 'scale=linear' في حجج المؤامرة ، لكنني لا أستطيع أن يبدو أنه صحيح

برنامج عينة:

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()

أولا وقبل كل شيء ، انها ليست مرتبة جدا لخلط رمز pyplot و pyplot . ما هو أكثر من ذلك ، يفضل أسلوب pyplot على استخدام pylab .

هنا رمز تنظيف قليلاً ، باستخدام وظائف 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()

الوظيفة ذات الصلة هي pyplot.yscale() . إذا كنت تستخدم إصدار الكائن - الوجهة ، استبدلها بواسطة الأسلوب Axes.set_yscale . تذكر أنه يمكنك أيضًا تغيير مقياس المحور X ، وذلك باستخدام pyplot.xscale() (أو Axes.set_xscale() ).

تحقق من سؤالي ما الفرق بين "log" و "symlog"؟ للاطلاع على بعض الأمثلة على مقاييس الرسم البياني التي يقدمها matplotlib.


تحتاج ببساطة إلى استخدام semilogy بدلاً من مؤامرة:

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()

لذا ، إذا كنت تستخدم واجهة برمجة التطبيقات البسيطة فقط ، مثلما أكون في كثير من الأحيان (استخدمه في ipython كثيرًا) ، فهذا ببساطة

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

آمل أن يساعد هذا شخص ما يبحث عن إجابة بسيطة! :).





logarithm