在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()
您可以使用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()
首先,混合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()
相关函数是pyplot.yscale()
。 如果使用面向对象的版本,请用方法Axes.set_yscale()
替换它。 请记住,您还可以使用pyplot.xscale()
(或Axes.set_xscale()
)更改X轴的比例。
检查我的问题'log'和'symlog'有什么区别? 查看matplotlib提供的一些图表比例示例。
你只需要使用semilogy而不是plot:
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()
链接地址: http://www.djcxy.com/p/67587.html