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


首先,混合pylabpyplot代码并不是很整齐。 更重要的是,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

上一篇: Plot logarithmic axes with matplotlib in python

下一篇: Is SDL Renderer useless if I use opengl for drawing?