更新matplotlib中的特定注释
我的图中有很少的注释是用鼠标点击激活的。我想更新一个特定的注释。但是,注释覆盖了较早的注释。如何清除旧的特定/特定注释并用新值更新,以使其看起来干净。更新matplotlib中的特定注释
from matplotlib import pyplot as plt fig, ax = plt.subplots()
x=1
def annotate():
global x
if x==1:
x=-1
else:
x=1
ax.annotate(x, (0.5,0.5), textcoords='data', size=10)
ax.annotate('Other annotation', (0.5,0.4), textcoords='data', size=10)
def onclick(event):
annotate()
fig.canvas.draw()
cid = fig.canvas.mpl_connect('button_press_event',onclick)
回答:
您可以先创建注释对象,然后更新文本作为annotate()函数的一部分。这可以通过注释对象上的Text Class的set_text()方法完成。 (因为matplotlib.text.Annotation类是基于matplotlib.text.Text类)
这里是如何完成这件事:
from matplotlib import pyplot as plt fig, ax = plt.subplots()
x=1
annotation = ax.annotate('', (0.5,0.5), textcoords='data', size=10) # empty annotate object
other_annotation = ax.annotate('Other annotation', (0.5,0.4), textcoords='data', size=10) # other annotate
def annotate():
global x
if x==1:
x=-1
else:
x=1
annotation.set_text(x)
def onclick(event):
annotate()
fig.canvas.draw()
cid = fig.canvas.mpl_connect('button_press_event',onclick)
plt.show()
以上是 更新matplotlib中的特定注释 的全部内容, 来源链接: utcz.com/qa/260861.html