有时在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()
如何关闭/控制此功能?
我最终想要的是刻度标记仅标记1,所以我添加了命令
pl.gca().set_yticks([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()