使用button_press_event在绘图上绘制单独的线条

时间:2017-10-03 13:34:32

标签: python matplotlib event-handling line

我想使用button_press_events在绘图上绘制线条。 以下代码执行此操作,但行坐标彼此相符。

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)
# Plot some random data
values = np.random.rand(4,1);
graph_1, = ax.plot(values, label='original curve')
graph_2, = ax.plot([], marker='.')

# Keep track of x/y coordinates
xcoords = []
ycoords = []

def onclick(event):
    xcoords.append(event.xdata)
    ycoords.append(event.ydata)

    # Update plotted coordinates
    graph_2.set_xdata(xcoords)
    graph_2.set_ydata(ycoords)

    # Refresh the plot
    fig.canvas.draw()

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

enter image description here

如何分隔事件,以便每隔一次点击产生一个单独的行?

1 个答案:

答案 0 :(得分:0)

这样的事情应该可以解决问题。 请注意,在此代码中有许多事情需要改进,例如检测是否在轴内部或外部检测到点击,但它应该让您走上正确的轨道。

x

enter image description here