单击时打印值,但未创建行?

2024-04-25 10:22:12 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: 代码importevent绘图matplotlibas地方np