Col*_*tic 2 python events matplotlib
当用户单击图形时,我正在尝试使用新的数据点更新matplotlib图。我该如何实现?我尝试使用像plt.draw()这样的东西没有成功。到目前为止,这是我的尝试。我觉得这里缺少基本的东西。
x=[1]
y=[1]
def onclick(event):
if event.button == 1:
x.append(event.xdata)
y.append(event.ydata)
fig,ax=plt.subplots()
ax.scatter(x,y)
fig.canvas.mpl_connect('button_press_event',onclick)
plt.show()
plt.draw()
Run Code Online (Sandbox Code Playgroud)
绑定事件的方式没有任何问题。但是,您仅更新了数据集,而没有告诉您matplotlib对新数据进行重新绘图。为此,我在onclick方法中添加了最后4行。它们是不言自明的,但也有注释。
import matplotlib.pyplot as plt
x = [1];
y = [1];
def onclick(event):
if event.button == 1:
x.append(event.xdata)
y.append(event.ydata)
#clear frame
plt.clf()
plt.scatter(x,y); #inform matplotlib of the new data
plt.draw() #redraw
fig,ax=plt.subplots()
ax.scatter(x,y)
fig.canvas.mpl_connect('button_press_event',onclick)
plt.show()
plt.draw()
Run Code Online (Sandbox Code Playgroud)
注意:matplotlib在我的计算机(ubuntu 14.04)中更改了比例,因此您可能想研究如何固定xy比例。
| 归档时间: |
|
| 查看次数: |
2351 次 |
| 最近记录: |