325 python logarithm matplotlib scale
我想使用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()
Run Code Online (Sandbox Code Playgroud)
Mat*_*ieu 340
您可以使用该Axes.set_yscale方法.这允许您在Axes创建对象后更改比例.这也可以让你构建一个控件,让用户在需要时选择比例.
要添加的相关行是:
ax.set_yscale('log')
Run Code Online (Sandbox Code Playgroud)
您可以使用'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()
Run Code Online (Sandbox Code Playgroud)
Den*_*aia 268
首先,混合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()
Run Code Online (Sandbox Code Playgroud)
相关功能是pyplot.yscale().如果使用面向对象的版本,请使用该方法替换它Axes.set_yscale().请记住,您也可以使用pyplot.xscale()(或Axes.set_xscale())更改X轴的比例.
检查我的问题'log'和'symlog'有什么区别?查看matplotlib提供的图表比例的几个示例.
Sco*_*mon 63
你只需要使用半决赛而不是剧情:
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()
Run Code Online (Sandbox Code Playgroud)
Daw*_*wid 27
如果要更改对数的基数,只需添加:
plt.yscale('log',basey=2)
# where basex or basey are the bases of log
Run Code Online (Sandbox Code Playgroud)
小智 8
我知道这有点偏离主题,因为一些评论提到了ax.set_yscale('log')"最好的"解决方案,我认为可能是应该的反驳.我不建议使用ax.set_yscale('log')直方图和条形图.在我的版本(0.99.1.1)中,我遇到了一些渲染问题 - 不确定这个问题有多普遍.但是bar和hist都有可选的参数来将y标度设置为log,这样可以正常工作.
参考:http: //matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.bar
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hist
因此,如果您只是使用不复杂的API,就像我经常使用的那样(我在ipython中经常使用它),那么这只是
yscale('log')
plot(...)
Run Code Online (Sandbox Code Playgroud)
希望这有助于寻找简单答案的人!:).
| 归档时间: |
|
| 查看次数: |
560244 次 |
| 最近记录: |