python - 在 matplotlib 中设置 tickslabel 禁用鼠标光标位置

标签 python numpy matplotlib

每当我在 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()

最佳答案

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

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

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

关于python - 在 matplotlib 中设置 tickslabel 禁用鼠标光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12605646/

相关文章:

python - 放置一个颜色条 matplotlib

python - 我如何让 matplotlib 自动更改线标记?

python - ValueError:操作数无法与形状 (5,) (30,) 一起广播

python - 解决我的问题有什么不同的方法?

python - 如何使用一些常量片段在 Python 中进行分段线性拟合?

python - 如何在 Windows 8 的 pyvenv 中安装 Numpy?

python - 将一个矩阵中的值替换为另一个矩阵中相同位置的 NA

python - 迭代地减去数组中的值

python - Hadoop错误流

python - 将稀疏字典表示转换为密集数据帧