在现有图形的顶部绘制Python Matplotlib

在现有图形的顶部绘制Python Matplotlib,python,python-2.7,matplotlib,Python,Python 2.7,Matplotlib,所以我正在使用matplotlib编写一个程序,以便最初绘制一个基本图形,然后在上面放置点。我的目标是将鼠标放在图形中的某个点上,然后单击以添加点。我似乎找不到任何明确说明如何实际输入点的资源,因为单击鼠标的事件发生在绘制初始图形之后。这是我到目前为止所拥有的 import matplotlib.pyplot as plt import numpy as npy x,y,vx,vy=npy.loadtxt('issmplotdat.txt',delimiter=',',unpack=True)

所以我正在使用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

调用绘图函数后,需要通过调用
figure.canvas.draw()
更新绘图

[请注意,要执行此操作,您需要访问全局fig变量]

因此,在您的情况下,单击时的
回调函数是:

def on_click(event):
    plt.plot(event.xdata, event.ydata, 'ro')
    global fig
    fig.canvas.draw()