Matplotlib - 缩放/平移后返回数据集

时间:2013-02-04 15:07:42

标签: matplotlib

我正在尝试在同一个图上创建一对散点图

如果散点图1被缩放或平移,我想重新显示散点图2,以便只显示新数据集

子图共享相同的基础数据集,但不共享等效轴,因此我可以使用sharex,sharey等,.e.g。 scatterplot 2是将不同的函数应用于散点图1中显示的导致不同轴的相同数据的结果

我想我需要以某种方式提取显示的数据集每个散点图1被缩放/平移并将该数据传递给绘制散点图2的函数但我找不到任何关于如何做到这一点的信息

必须非常普遍 - 我很惊讶我没有挖出任何烹饪书类型的脚本

我使用'picker'事件返回散点指数集有一些运气 - 我真正需要的是返回缩放/平移事件后触发的所有可见点的散点指数

1 个答案:

答案 0 :(得分:2)

您可以检索轴视图间隔:

xinterval, yinterval = ax.xaxis.get_view_interval(), ax.yaxis.get_view_interval()

然后使用间隔来确定哪些点在第一个子图中可见,并使用它来决定显示第二个子图的内容/方式。例如:

plt.scatter(xs, ys)

xmin, xmax = ax.xaxis.get_view_interval()
ymin, ymax = ax.yaxis.get_view_interval()
indices = np.where((xmin <= xs) & (xs <= xmax) & (ymin <= ys) & (ys <= ymin))