我有3轴加速度计时间序列数据(t,x,y,z)的图表在我想要放大的单独子图中.也就是说,当我在一个图上使用"缩放到矩形"工具时,当我释放鼠标时,所有3个图都缩放在一起.
以前,我只是使用不同的颜色在一个图上绘制所有3个轴.但这仅适用于少量数据:我有超过200万个数据点,因此绘制的最后一个轴模糊了其他两个数据点.因此需要单独的子图.
我知道我可以捕获matplotlib/pyplot鼠标事件(http://matplotlib.sourceforge.net/users/event_handling.html),我知道我可以捕获其他事件(http://matplotlib.sourceforge.net/api/backend_bases_api .html #matplotlib.backend_bases.ResizeEvent),但我不知道如何判断在任何一个子图上请求了什么缩放,以及如何在其他两个子图上复制它.
我怀疑我拥有所有的碎片,只需要最后一条宝贵的线索......
-BobC
最小的例子:
[x,y,z] = peaks(50);
figure;
subplot(5,1,1:4);
pcolor(x,y,z);
shading flat;
colorbar;
subplot(5,1,5);
plot(x(end/2,:), z(end/2,:));
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我希望下面的子图显示沿y = 0的峰的横截面,并且该图以与pcolor子图相同的位置结束,因此x刻度位于相同的位置.实际上,我不需要重复的x轴.所以,
如何重新缩放下部子图,使右边界限与上边界图部分的右边界相匹配?(最好是这样可以在不破坏对齐的情况下打开/关闭彩条)
我想在Matlab中绘制几个不同的boxplot,但给它们相同的比例,以便读者不会因并排比较而被误导.
我尝试过使用datalim选项,但它只对boxplot施加了一个上限,但是如果数据没有达到它则不会拉伸它.
有任何想法吗?