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

Matplotlib-缩放/平移后返回数据集,matplotlib,Matplotlib,我试图在同一个图形上创建一对散点图 如果散点图1被缩放或平移,我希望重新显示散点图2,以便只显示新的数据集 子图共享相同的基础数据集,但不共享等效轴,因此我可以;不要使用sharex、sharey等。散点图2是对散点图1中显示的相同数据应用不同函数的结果,这些数据产生不同的轴 我想我需要以某种方式提取每个tme散点图1被缩放/平移时显示的数据集,并将该数据传递给绘制散点图2的函数,但我找不到任何关于如何实现这一点的信息 一定很普遍-我很惊讶我没有发现任何烹饪书类型的脚本 我很幸运地使用“pick

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

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

子图共享相同的基础数据集,但不共享等效轴,因此我可以;不要使用sharex、sharey等。散点图2是对散点图1中显示的相同数据应用不同函数的结果,这些数据产生不同的轴

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

一定很普遍-我很惊讶我没有发现任何烹饪书类型的脚本


我很幸运地使用“picker”事件返回了几组分散点索引-我真正需要的是返回缩放/平移事件后触发的所有可见点的分散点索引的东西

您可以检索轴视图间隔:

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))
plt.scatter(xs,ys)
xmin,xmax=ax.xaxis.get\u view\u interval()
ymin,ymax=ax.yaxis.get\u view\u interval()

index=np.where((xmin我一直在沿着类似的路线查看event.inaxes.get_xlim()和event.inaxes.get_ylim())在“按钮释放事件”中,我很惊讶没有一个更简单的方法,也就是说,一个轴方法可以将给定散射的所有索引返回到x和y可见数据点plot@Hiett我可能错了,但我很确定后端绘制了所有内容,然后只显示您要求的部分,因此知道哪些点是可见的并不是一个简单的问题我在大多数情况下都很重要。@t好吧,这是有道理的-我刚刚遇到了xlim_更改和ylim_更改事件,我认为这可能是useful@Hiett这和包含的链接可能是相关的。@Hiett哦,是的,忘记了括号。试试看-注意它是单和,而不是双。