2012-09-26 105 views
1

每当我在matplotlib中绘制一些东西时,将鼠标移到该图上就会在底部显示光标的x和y位置。这在探索数据时非常方便。在matplotlib中设置tickslabel会禁用鼠标光标位置

现在,如果我将tick标记设置为其他值,则绘图底部的光标的x位置为空,而gui会跟踪y位置。有没有办法继续获得x的位置?

这是发生这种情况的一个简单的例子:

import numpy as np 
fig, ax = plt.subplots() 
x=np.linspace(0,np.pi) 
y=np.sin(x) 
ax.plot(x,y) 
ax.set_xticks([0,np.pi/2,np.pi]) 
ax.set_xticklabels(['0','pi/2','pi']) 
plt.show() 
+0

有趣。作为一个侧面说明,如果你使用'['0',R $ \ PI/2 $ ',r'$ \ pi $']'您可以将标签渲染为TeX。 – tacaswell

回答

1

没有,有没有简单的方法来做到这一点。

当你与一个字符串列表中的标签设置你设置xaxis.major_formatterFixedFormatter(doc)其中有一些特殊的行为,使其工作(它总是返回'',除非你给它它赋予了第三个参数时,标签的x轴,但不以其他方式)。光标所在位置的标记是使用major_formatter生成的,当您调用FixedFormatter时,它会返回'',这就是显示的内容。

如果你真的想要这个,你必须写你自己的回电,请参阅Color values in imshow for matplotlib?作为起点。 (或子类axes,并重新实现format_coord(约在当前matplotlib主分支在axes.py线2903)