python海龟画图画数轴_在python中使用matplotlib绘制对数轴

我想使用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()

#1楼

您可以使用Axes.set_yscale方法。 这样,您可以在创建“ Axes对象之后更改比例。 这也将允许您构建一个控件,让用户根据需要选择比例。

要添加的相关行是:

ax.set_yscale('log')

您可以使用'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)

ax.set_yscale('log')

pylab.show()

#2楼

我知道这有点ax.set_yscale('log') ,因为一些评论提到ax.set_yscale('log')是“最好的”解决方案,我认为可能是反驳。 我不建议将ax.set_yscale('log')用于直方图和条形图。 在我的版本(0.99.1.1)中,我遇到了一些渲染问题-不确定此问题的普遍性。 但是,bar和hist都具有可选参数,可以将y比例设置为log,这很好用。

#3楼

首先,混合pylab和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()

检查我的问题'log'和'symlog'有什么区别? 查看matplotlib提供的图形比例的一些示例。

#4楼

因此,如果您只是像我经常那样使用简单的API(我在ipython中经常使用它),那么这很简单

yscale('log')

plot(...)

希望这可以帮助寻找简单答案的人! :)。

#5楼

如果要更改对数的底数,只需添加:

plt.yscale('log',basey=2)

# where basex or basey are the bases of log

你可能感兴趣的:(python海龟画图画数轴)