Я хочу построить график с одной логарифмической осью, используя 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()
python
matplotlib
scale
logarithm
Макс Генис
источник
источник
semilogy()
. Кроме того, его проще использовать напрямую,pyplot.yscale()
чем использоватьax.set_yscale('log')
, так как нет необходимости получатьax
объект (который не всегда доступен сразу).loglog()
semilogx()
ax
объект, который можно использовать,pyplot
который может применяться только к тем осям, к которым вы хотите.Прежде всего, это не очень аккуратно, чтобы смешивать
pylab
иpyplot
кодировать. Более того, стиль pyplot предпочтительнее использования pylab .Вот немного очищенный код, использующий только
pyplot
функции:Соответствующая функция есть
pyplot.yscale()
. Если вы используете объектно-ориентированную версию, замените ее методомAxes.set_yscale()
. Помните, что вы также можете изменить масштаб оси X, используяpyplot.xscale()
(илиAxes.set_xscale()
).Проверьте мой вопрос В чем разница между «log» и «symlog»? чтобы увидеть несколько примеров масштабов графа, которые предлагает matplotlib.
источник
pyplot.semilogy()
более прямой.Вам просто нужно использовать полулогию вместо сюжета:
источник
если вы хотите изменить основание логарифма, просто добавьте:
источник
Я знаю, что это немного не по теме, поскольку в некоторых комментариях упоминалось, что
ax.set_yscale('log')
это « самое хорошее» решение, и я подумал, что это может быть опровержением. Я бы не рекомендовал использоватьax.set_yscale('log')
для гистограмм и гистограмм. В моей версии (0.99.1.1) я столкнулся с некоторыми проблемами рендеринга - не уверен, насколько общей является эта проблема. Тем не менее, и bar, и hist имеют необязательные аргументы для установки шкалы y в журнал, которые работают нормально.ссылки: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.bar
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hist
источник
Так что если вы просто используете простой API, как я часто (я часто использую его в ipython), то это просто
Надеюсь, это поможет кому-то, кто ищет простой ответ! :).
источник
Вы можете использовать ниже код:
источник