所以我使用matplotlib编写程序,以便初步绘制基本图形,然后在其上放置点。我的目标是将鼠标放在图表中的某个点上,然后单击以添加点。我似乎无法找到任何明确说明如何实际输入点的资源,因为在绘制初始图形之后发生了点击鼠标的事件。这是我到目前为止所拥有的。
import matplotlib.pyplot as plt
import numpy as npy
x,y,vx,vy=npy.loadtxt('issmplotdat.txt',delimiter=',',unpack=True)
elements=npy.loadtxt('issmplotdatelements.txt',delimiter=',')
vel=npy.sqrt(vx**2+vy**2)
fig = plt.figure()
plt.tricontourf(x,y,elements,vel)
plt.hold(True)
plt.plot(3,9, 'ro')
def on_keyboard(event):
print "you pressed", event.key, "\nat:", event.xdata, event.ydata
plt.plot(9, 9, 'ro')
print "plotted"
def on_click(event):
print('ehllo')
print 'you pressed:', event.button, '\nat:', event.xdata, event.ydata
plt.plot(event.xdata, event.ydata, 'ro')
zing = fig.canvas.mpl_connect('button_press_event', on_click)
ding = fig.canvas.mpl_connect('key_press_event', on_keyboard)
plt.show()
非常感谢提前!
-MS
答案 0 :(得分:1)
您需要在调用绘图函数后调用figure.canvas.draw()
来更新绘图。
[请注意,为此,您需要访问全局图变量]
因此,在您的情况下,on_click
回调函数将是:
def on_click(event):
plt.plot(event.xdata, event.ydata, 'ro')
global fig
fig.canvas.draw()