Python 注释值已更改,但未在绘图上更新
我试图在Matplotlib中以散点图的形式绘制几个点,并在这些点上悬停时显示坐标值。我将注释作为参数传递给回调函数,当我尝试在回调函数中更新注释的值/text/等时,值会更改,但在绘图上看不到任何更改。我错过什么了吗?我尝试了annotation.remove(),但它也不起作用(正在删除它,但我仍能在绘图上看到它) 下面是代码片段:Python 注释值已更改,但未在绘图上更新,python,matplotlib,annotations,Python,Matplotlib,Annotations,我试图在Matplotlib中以散点图的形式绘制几个点,并在这些点上悬停时显示坐标值。我将注释作为参数传递给回调函数,当我尝试在回调函数中更新注释的值/text/等时,值会更改,但在绘图上看不到任何更改。我错过什么了吗?我尝试了annotation.remove(),但它也不起作用(正在删除它,但我仍能在绘图上看到它) 下面是代码片段: annotation = plot_zoom.annotate('point offset from data', xy=(50, 93),
annotation = plot_zoom.annotate('point offset from data', xy=(50, 93),
xycoords='data',
xytext=(-15, 25), textcoords='offset points',
arrowprops=dict(facecolor='black', shrink=0.05),
horizontalalignment='right', verticalalignment='bottom',
bbox=dict(boxstyle="round", fc="w")
)
local_figure.canvas.mpl_connect('button_press_event',
lambda event: on_plot_hover(event, plot_zoom, local_figure, annotation))
def on_plot_hover(event, plot, figure, annotation):
if not event.dblclick:
# do something
print(annotation)
annotation.set_text("IT HAS CHANGED")
print(annotation)
作为输出,我得到如下结果:
Annotation(50, 93, 'point offset from data')
Annotation(50, 93, 'IT HAS CHANGED')
但在绘图上我看不到任何变化,我仍然看到“数据的点偏移”。原因可能是什么
非常感谢 看来我找到了一个解决方案,所以我将它发布给将来可能遇到此问题的任何人。更新注释后,需要重新绘制回调连接到的画布:
event.canvas.draw()