Python 注释值已更改,但未在绘图上更新

Python 注释值已更改,但未在绘图上更新,python,matplotlib,annotations,Python,Matplotlib,Annotations,我试图在Matplotlib中以散点图的形式绘制几个点,并在这些点上悬停时显示坐标值。我将注释作为参数传递给回调函数,当我尝试在回调函数中更新注释的值/text/等时,值会更改,但在绘图上看不到任何更改。我错过什么了吗?我尝试了annotation.remove(),但它也不起作用(正在删除它,但我仍能在绘图上看到它) 下面是代码片段: annotation = plot_zoom.annotate('point offset from data', xy=(50, 93),

我试图在Matplotlib中以散点图的形式绘制几个点,并在这些点上悬停时显示坐标值。我将注释作为参数传递给回调函数,当我尝试在回调函数中更新注释的值/text/等时,值会更改,但在绘图上看不到任何更改。我错过什么了吗?我尝试了annotation.remove(),但它也不起作用(正在删除它,但我仍能在绘图上看到它)

下面是代码片段:

    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()