0

我正在尝试将 matplotlib 图中的 event.xdata 和 event.ydata 附加到“onclick”函数之外的两个列表中,但是当我打印这些列表时它们是空的。有人可以解释我为什么吗?

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(np.random.rand(10))

start_values = []
finish_values = []

def onclick(event):
    print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
        event.button, event.x, event.y, event.xdata, event.ydata)
    x_values = event.xdata
    y_values = event.ydata
    start_values.append(x_values)
    finish_values.append(y_values)

cid = fig.canvas.mpl_connect('button_press_event', onclick)

print(start_values)
print(finish_values)

plt.show()

在此先感谢您的帮助。亲切的问候。伊沃·鲁帕

4

1 回答 1

1

它似乎工作正常。您只是在之前打印列表值plt.show(),因此在用户有机会与绘图交互之前。不过,如果我误解了,请告诉我。

顺便说一句,plt.show()阻止脚本的进一步执行,直到绘图窗口关闭。如果您希望通过用户的交互来更新绘图,请尝试show(block=False)- 它仍被列为实验参数,因此如果您有旧版本的软件包,它可能无法工作。

于 2013-07-01T23:48:18.377 回答