我想用matplotlib绘制一个只有一个对数轴的图。
我一直在看文档,但不懂语法。我知道这可能是一些简单的东西,如'scale=linear'在plot参数中,但我似乎不能得到它的正确
示例程序:
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()
你可以使用坐标轴。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()
首先,混合使用pylab和pyplot代码不是很整洁。此外,与使用pylab相比,pyplot样式更受欢迎。
下面是稍微清理过的代码,只使用了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()。请记住,您还可以使用pyplot.xscale()(或Axes.set_xscale())更改X轴的比例。
检查我的问题' log '和' symlog '之间的区别是什么?查看matplotlib提供的几个图尺度示例。