【发布时间】:2020-06-27 08:33:43
【问题描述】:
我正在尝试修改 matplotlib 的平移功能,以便在按下 ctrl+left 按钮时可以平移图中的轴。
效果很好。
问题是,如果按下缩放按钮,那么尝试上述操作也会“缩放到矩形”,结果会很奇怪。
我想在按下“控制”按钮时自动禁用“缩放到矩形”按钮。
有什么方法可以实现吗?
谢谢! 暗里
【问题讨论】:
标签: python matplotlib
我正在尝试修改 matplotlib 的平移功能,以便在按下 ctrl+left 按钮时可以平移图中的轴。
效果很好。
问题是,如果按下缩放按钮,那么尝试上述操作也会“缩放到矩形”,结果会很奇怪。
我想在按下“控制”按钮时自动禁用“缩放到矩形”按钮。
有什么方法可以实现吗?
谢谢! 暗里
【问题讨论】:
标签: python matplotlib
如果窗口来自matplotlib.pyplot(而不是您自己的嵌入),它将有一个与之关联的工具栏,您可以通过该工具栏访问
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
tool_bar = fig.canvas.manager.toolbar
然后您可以将mode 属性设置为''(空字符串)
但我建议您在执行此操作时要小心,因为如果您在平移或缩放期间更改模式,事情可能不会顺利进行。
另一个问题是ctrl 不显示为普通键,而是显示为另一个鼠标或键盘事件的修饰符(因此我们无法注册按键事件来关闭缩放)。
我建议你这样做
if tool_bar.mode != '':
print("axes panning does not work with zoom enabled!")
return
在您的回调中。它让用户关闭缩放功能,但无需进入工具栏的(私有)内部即可工作。
【讨论】: