0

在此代码段中:

import matplotlib.pyplot as plt
import numpy as np

def onclick(event):
  plt.text(event.xdata, event.ydata, f'x', color='black')
  plt.show()

fig, ax = plt.subplots()
fig.canvas.mpl_connect('button_press_event', onclick)
data = np.random.rand(8, 8)
plt.imshow(data, origin='lower', interpolation='None', aspect='equal')
plt.axis('off')
plt.show()

x每次鼠标单击都会在图像顶部留下一个额外的字母:

在此处输入图像描述

我只想x显示最新的。如何在保持简单的同时完成它?

4

1 回答 1

1

我建议您声明一个名为“txt”之类的全局变量,然后在单击时首先删除“当前”x 并添加新的。

txt = None

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

像这样的东西。它可能很乱,但试试看。

于 2022-02-15T07:48:16.220 回答