我想在我的matplotlib图中添加一些带有信息或提醒的文字,例如" stickynotes"。这是我的代码,直到现在:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.1);
y = np.sin(x)
plt.text(2 , 0.5, s = "Here´s a note", bbox = dict(facecolor = "red"))
plt.plot(x, y)
plt.show()
正如你所看到的,我把一个" stickynote"使用matplotlib库的一个模块,但我想要做的是把#34;注意"并在剧情周围使用鼠标移动它。我可以使用任何模块吗?我怎样才能做到这一点?
感谢您的时间和答案。
答案 0 :(得分:2)
查看可拖动的注释。
作为一个简单的例子:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.1);
y = np.sin(x)
fig, ax = plt.subplots()
ann = ax.annotate("Here's a note", xy=(2, 0.5), bbox=dict(facecolor='yellow'))
ann.draggable()
ax.plot(x, y)
plt.show()
答案 1 :(得分:1)
除了乔的答案之外,另一个途径是将一个功能分配给"点击画布"如果你想在后端做一些额外的工作,那就是事件:
import numpy as np
import matplotlib.pyplot as plt
def click(event):
global note
note_x = event.xdata
note_y = event.ydata
# remove your old note
note.remove()
# add a new one and redraw the figure
note = plt.text(note_x , note_y, s = "Here's a note", bbox = dict(facecolor = "red"))
plt.draw()
fig = plt.figure()
fig.canvas.mpl_connect('button_press_event', click)
x = np.arange(0, 5, 0.1);
y = np.sin(x)
plt.plot(x,y)
note = plt.text(2 , 0.5, s = "Here's a note", bbox = dict(facecolor = "red"))
plt.show()