每当我在matplotlib中绘制某些内容时,将鼠标移到绘图上会在底部显示光标的x和y位置。这在探索数据时非常方便。
现在,如果我将ticklabels设置为其他内容,则光标底部的光标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 :(得分:2)
不,没有简单的方法可以做到这一点。
当您使用字符串列表设置标签时,您将xaxis.major_formatter
设置为FixedFormatter
(doc),这有一些奇特的行为使其有效(它始终返回''
除非你给它第三个参数,它在标注x轴时给出,否则不给出。使用major_formatter
生成光标所在位置的标记,当您调用FixedFormatter
时,它会返回''
,这就是显示的内容。
如果您真的想要这个,那么您必须自己编写回叫,请参阅Color values in imshow for matplotlib?作为起点。 (或子类axes
并重新实现format_coord
(在当前matplotlib主分支的axes.py中的第2903行附近)