Matplotlib / pyplot:如何执行轴范围?

我想用pylot绘制一个标准的二维线图,但强制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的作用是设置最大值和最小值,而不是强制它们成为最大值或最小值。 当我尝试使用p.xlim()等同样的情况发生

有什么想法吗?

谢谢。

在设置极限之后调用p.plot是为什么要重新resize。 你是正确的,转动autoscalingclosures将得到正确的答案,但也会你的plot命令之后调用xlim()ylim()

我用相当多的东西来反转X轴,我在天文学上工作,我们使用一个向后的震级系统(即更明亮的恒星具有更小的震级),所以我通常将极限与

 lims = xlim() xlim([lims[1], lims[0]]) 

要回答我自己的问题,诀窍是closures自动缩放…

 p.axis([0.0,600.0, 10000.0,20000.0]) ax = p.gca() ax.set_autoscale_on(False) 

我尝试了所有上述答案,然后总结了如何绘制固定轴图像的stream水线。 它应用于showfunction和savefigfunction。

  1. 在你绘制之前:

     fig = pylab.figure() ax = fig.gca() ax.set_autoscale_on(False) 

这是要求一个axsubplot(1,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]) 
  2. 剧情结束后:

    1. 要显示图像:

       fig.show() 
    2. 为了保存这个数字:

       fig.savefig('the name of your figure') 

我发现,即使我已经将autoscale_on设置为False ,将axis放在代码的前面将不起作用。

我用这个代码来创build一系列的animation。 下面是将多个固定轴图像组合成一个animation的例子。 IMG

尝试在所有绘图命令之后调用axis