Python &引用;便签;在matplotlib中
我想在我的matplotlib绘图中加入一些文字,其中包含信息或提示,如“stickynotes”。这是我到目前为止的代码:Python &引用;便签;在matplotlib中,python,python-2.7,numpy,matplotlib,Python,Python 2.7,Numpy,Matplotlib,我想在我的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.sh
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()
如您所见,我使用matplotlib库的一个模块放置了一个“粘滞便笺”,但我要做的是放置“便笺”,并使用鼠标在绘图周围替换它。是否有任何模块可供我使用?我怎样才能做到这一点
感谢您的时间和回答。看看可拖动的注释 举个简单的例子:
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()
看看可拖动的注释 举个简单的例子:
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()
除了Joe的答案之外,另一个途径是,如果您想在后端完成一些额外的工作,则为“单击画布”事件分配一个函数:
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()
除了Joe的答案之外,另一个途径是,如果您想在后端完成一些额外的工作,则为“单击画布”事件分配一个函数:
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()
该代码在当前形式下无法工作-您需要在callbackOops中重新绘制画布,谢谢您的帮助。在Spyder中编码让你有时走捷径。。。我已经进行了编辑,以显式显示和重画该图。该代码在其当前形式下无法工作-您需要在Callbackoop中重画画布,感谢您的帮助。在Spyder中编码让你有时走捷径。。。我已经编辑以明确显示和重画该图。谢谢你的回答,这对我帮助很大。我可以拖动便条,但你只能移动一次。但是,这正是我想做的。非常感谢。你应该能够移动它不止一次。。。某些内容一定无法正常工作。您知道是否有任何方法可以使用PyQt4中的“QTextEdit”来编写便笺,并获取用于粘贴便笺的文本?或者只是如何从中获取文本?顺便说一下,这是一个配置问题,现在我每次都可以移动它。谢谢你的回答,这对我帮助很大。我可以拖动便条,但你只能移动一次。但是,这正是我想做的。非常感谢。你应该能够移动它不止一次。。。某些内容一定无法正常工作。您知道是否有任何方法可以使用PyQt4中的“QTextEdit”来编写便笺,并获取用于粘贴便笺的文本?或者只是如何从中获取文本?顺便说一下,这是一个配置问题,现在我每次都可以移动它。