Matplotlib在绘图时从刻度中减去值

时间:2015-10-10 21:26:26

标签: python matplotlib plot

有时在matplotlib中绘制非常小的偏差时,比如小偏差,matplotlib会自动将刻度标记为0,然后在左上角写入“+1”。通常它甚至会做更糟糕的事情,并从刻度线中减去0.999之类的值而不是1.例如,以下代码

import pylab as pl
import numpy as np

x=np.linspace(-10,10,100)
pl.plot(x,1+1e-4*np.sin(x))
pl.savefig('test.pdf')
pl.show()

生成以下图表。 enter image description here

如何关闭/控制此功能?

我最终想要的是刻度标记仅标记1,所以我添加了命令

pl.gca().set_yticks([1])

给出了以下荒谬的情节 enter image description here 而不是只显示左轴中间的1。如何解决这个问题?

(为一个糟糕的头衔道歉,不知道该写些什么)

1 个答案:

答案 0 :(得分:0)

如前所述[{3}},您可以从yticks获取标签位置,添加您想要的偏移量,并且"手动"在左上角添加它的值。

import pylab as pl
import numpy as np

offset = 1

x=np.linspace(-10,10,100)

pl.plot(x,1+1e-4*np.sin(x))

locs,labels = yticks()
yticks(locs, map(lambda y: "%g" % y, locs - offset ) )
text(0.0, 1.01, "+%g" % offset, fontsize=10, transform = gca().transAxes)

pl.show()

here