这是一个matplotlib和pick_event问题。我们尝试从散点图中设置两个点的第一次和第二次选择。但是我们还没有找到如何通过pick_event执行此操作。我们还希望在散点图中的点之间创建多条线。感谢您的帮助!我们希望能找到解决这个问题的程序的一部分。
xdnvmnnf1#
下面是一个简单的脚本,当你点击散点图的两个点时,它会创建一条线。这就是你要找的吗?
import matplotlib.pyplot as plt from matplotlib.collections import PathCollection import numpy as np from matplotlib.backend_bases import PickEvent from numpy.random import rand from matplotlib import axes # Fixing random state for reproducibility np.random.seed(19680801) fig, ax = plt.subplots(1, 1) x = rand(100) y = rand(100) ax.scatter(x, y, picker=True) buffer = [] line_params = dict(color='black') def onpick(event: PickEvent, buffer: list, ax: axes, line_params: dict): if isinstance(event.artist, PathCollection): i = event.ind buffer.append((x[i][0], y[i][0])) if len(buffer) == 2: print(f"Creating line with points {buffer}") array = np.array(buffer) ax.plot(array[:, 0], array[:, 1], **line_params) plt.draw() buffer.clear() fig.canvas.mpl_connect('pick_event', lambda event: onpick(event, buffer, ax, line_params)) plt.show(block=True)
1条答案
按热度按时间xdnvmnnf1#
下面是一个简单的脚本,当你点击散点图的两个点时,它会创建一条线。这就是你要找的吗?