代码之家  ›  专栏  ›  技术社区  ›  BobC

Matplotlib/Pyplot:如何一起缩放子块?

  •  59
  • BobC  · 技术社区  · 14 年前

    我有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),但我不知道如何知道在任何一个子块上请求了什么缩放,以及如何在其他两个子块上复制它。

    我想我拥有所有的碎片,只需要最后一条宝贵的线索。。。

    -美国银行

    3 回复  |  直到 14 年前
        1
  •  102
  •   Ray    14 年前

    最简单的方法是使用 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(...)
    
        2
  •  21
  •   Jeremy McGibbon    7 年前

    你也可以这样做 plt.subplots ,如果这是你的风格。

    fig, ax = plt.subplots(3, 1, sharex=True, sharey=True)
    
        3
  •  -1
  •   n1nj4    10 年前

    以交互方式在单独的轴上工作

    for ax in fig.axes:
        ax.set_xlim(0, 50)
    fig.draw()
    
    推荐文章