我试图绘制一些数据,当我点击某个键时,我希望水平轴出现,作为边界。
这工作正常,但我也想然后按下按钮第二次,并删除边界线。这是否可以通过Matplotlib的事件回调来实现?
到目前为止我有:
def on_key(event):
if event.key == 'b':
plot.axhline(y = boundary, color = 'green', linestyle = '-')
plot.draw()
字符串
我试过为axhline可见性设置一个布尔变量,以切换回调的每个条目,但不幸的是似乎不起作用。
我也试过将颜色设置为白色,但这会影响底层数据,在情节中仍然相当引人注目。
有没有一种方法可以简单地删除这个axhline,甚至与serperate按钮按下例如?
1条答案
按热度按时间yb3bgrhw1#
基于this documentation page,我们可以创建
axhline
并在每次按键时切换其可见性。字符串
注意:
on_press
函数从全局作用域获取line
变量。这不是最好的做法。如果你想显式传递这一行,我们可以使用functools.partial
创建一个自动传递变量的事件版本。型
或者我们可以使用
lambda
函数。型