我想绘制带有pylot的标准2D线图,但强制轴的值在x上介于0和600之间,y上强制介于10k和20k之间。让我举个例子......
import pylab as p
p.title(save_file)
p.axis([0.0,600.0,1000000.0,2000000.0])
#define keys and items elsewhere..
p.plot(keys,items)
p.savefig(save_file, dpi=100)
但是,轴仍然会调整到数据大小。我正在解释p.axis的效果是设置max和min可能是什么,而不是强制它们是max或min。当我尝试使用p.xlim()等时会发生同样的情况。
有什么想法吗?
感谢。
答案 0 :(得分:35)
设置限制后调用p.plot
是重新缩放的原因。你是正确的,因为关闭自动缩放将获得正确的答案,但在<{strong> xlim()
命令之后调用ylim()
或plot
也是如此。
我使用它来反转x轴,我在天文学中工作,我们使用向后的幅度系统(即更亮的恒星具有更小的幅度)所以我通常用
交换限制lims = xlim()
xlim([lims[1], lims[0]])
答案 1 :(得分:26)
要回答我自己的问题,诀窍是关闭自动缩放...
p.axis([0.0,600.0, 10000.0,20000.0])
ax = p.gca()
ax.set_autoscale_on(False)
答案 2 :(得分:11)
我尝试了以上所有这些答案,然后我总结了如何绘制固定轴图像的管道。它适用于show
函数和savefig
函数。
:
fig = pylab.figure()
ax = fig.gca()
ax.set_autoscale_on(False)
这是请求ax
subplot(1,1,1)
。
在情节中:
ax.plot('You plot argument') # Put inside your argument, like ax.plot(x,y,label='test')
ax.axis('The list of range') # Put in side your range [xmin,xmax,ymin,ymax], like ax.axis([-5,5,-5,200])
情节之后:
显示图片:
fig.show()
保存图:
fig.savefig('the name of your figure')
我发现即使我已将axis
设置为autoscale_on
,代码前面的False
也无法正常工作。
我用这段代码创建了一系列动画。以下是将多个固定轴图像组合成动画的示例。
答案 3 :(得分:7)
尝试在所有绘图命令之后调用axis
。