使用按钮事件在图形中添加和移除文本的Python Matplotlib

4 投票
1 回答
12829 浏览
提问于 2025-04-16 15:22

我正在尝试在鼠标指针的位置添加文本,当按下鼠标按钮时触发这个事件,而当松开鼠标按钮时则移除这个文本。我已经成功地添加了文本,但我无法让它消失。以下是我使用的部分代码:

def onclick(event):
    print 'you pressed', event.button, event.xdata, event.ydata
    plt.text(event.xdata, event.ydata, 'TESTTEST', fontsize=8)
    fig.canvas.draw()

def offclick(event):
    print 'you released', event.button, event.xdata, event.ydata
    #not sure what to put here
    #I tried:
    #plt.text(event.xdata, event.ydata, '')
    fig.canvas.draw()

fig.canvas.mpl_connect('button_press_event', onclick)
fig.canvas.mpl_connect('button_release_event', offclick) 

plt.show()

1 个回答

10

假设你应该在一个类里面使用它,并且把下面的 txt 叫做 self.txt。我在这里用全局变量是为了简单方便:

txt = None

def onclick(event):
    global txt
    txt = plt.text(event.xdata, event.ydata, 'TESTTEST', fontsize=8)
    fig.canvas.draw()

def offclick(event):
    txt.remove()
    fig.canvas.draw()

fig.canvas.mpl_connect('button_press_event', onclick)
fig.canvas.mpl_connect('button_release_event', offclick) 

plt.show()

撰写回答