1

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

现在,如果我将刻度标签设置为其他值,则绘图底部光标的 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()
4

1 回答 1

2

不,没有简单的方法可以做到这一点。

当您使用字符串列表设置标签时,您将其设置xaxis.major_formatterFixedFormatter (doc),它具有使其工作的一些特殊行为(它总是返回'',除非您给它第三个参数,该参数在它标记 x 轴时给出,但是否则)。光标所在位置的标记是使用 生成的major_formatter,当您调用 a时,FixedFormatter它会返回'',这就是显示的内容。

如果你真的想要这个,你必须编写自己的回调,请参阅matplotlib 的 imshow 中的颜色值?为起点。(或子类axes并重新实现format_coord(在当前matplotlib主分支中的axes.py中的第2903行附近)

于 2012-09-26T17:21:08.200 回答