我目前正在学习python3.4上的matplotlib库。我在练习一个代码,用户只需点击它就可以与绘图交互。当点击发生在绘图的某个地方时,有两件事是应该发生的:打印出y值并在点击发生的绘图中创建一条水平线
当我点击绘图的某个地方时,我得到的结果是,打印按所需进行,但只有当我按F键(这会使绘图全屏显示)时,水平线才会显示出来。换句话说,这条线是在我点击绘图时创建的,但直到我按F键它才会出现。知道为什么会这样吗
代码:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(np.random.rand(10))
def pick(event):
plt.hlines(event.ydata,event.xdata-
0.2,event.xdata+0.2,colors='r',linestyle='solid')
print('Y coord = %f'%event.ydata)
fig.canvas.mpl_connect('button_press_event',pick)
plt.show()
每次单击后需要使用interactive mode更新绘图。在plt.show()之前使用plt.ion()
相关问题 更多 >
编程相关推荐