我目前正在学习python 3.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()