Matplotlib / Pyplot:如何将子图一起缩放?
我将三轴加速度计时间序列数据(t,x,y,z)绘制在单独的子图中,我想缩放在一起。 也就是说,当我使用“缩放到矩形”工具在一个情节,当我释放鼠标所有3个图放大在一起。
以前,我只是使用不同的颜色在一个绘图上绘制了所有3个坐标轴。 但是这只对less量数据有用:我有超过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
最简单的方法是在创build轴时使用sharex
和/或sharey
关键字:
from matplotlib import pyplot as plt ax1 = plt.subplot(2,1,1) ax1.plot(...) ax2 = plt.subplot(2,1,2, sharex=ax1) ax2.plot(...)
如果这是你的风格,你也可以用plt.subplots
来做到这一点。
fig, ax = plt.subplots(3, 1, sharex=True, sharey=True)
以交互方式在单独的轴上工作
for ax in fig.axes: ax.set_xlim(0, 50) fig.draw()