1. ホーム
  2. zooming

[解決済み] Matplotlib/Pyplot: サブプロットを一緒にズームするには?

2023-05-10 18:39:11

質問

3 軸加速度センサーの時系列データ (t,x,y,z) のプロットがあり、別々のサブプロットで、一緒にズームしたいのですが、どうすればよいでしょうか。 つまり、1 つのプロットで "Zoom to Rectangle" ツールを使用すると、マウスを離したときに 3 つのプロットすべてが一緒にズームされます。

以前は、私は単に異なる色を使って1つのプロット上に3つの軸をプロットしていました。 しかし、これは少量のデータでのみ有効です。私は 200 万以上のデータ ポイントを持っているので、最後にプロットされた軸は他の 2 つの軸を見えなくしてしまいます。 それゆえ、別々のサブプロットが必要なのです。

matplotlib/pyplotのマウスイベント(http://matplotlib.sourceforge.net/users/event_handling.html)を捕捉できることは知っていますし、他のイベント(http://matplotlib.sourceforge.net/api/backend_bases_api.html#matplotlib.backend_bases.ResizeEvent)を捕捉できることも知っていますが、どのサブプロットでどのズームが要求され、他の二つのサブプロットでそれを複製する方法が分かりません。

私はすべてのピースを持っていて、最後の貴重な手がかりが必要なだけだと思います...。

-BobC

どのように解決するのですか?

一番簡単なのは sharexsharey キーワードを使用します。

from matplotlib import pyplot as plt

ax1 = plt.subplot(2,1,1)
ax1.plot(...)
ax2 = plt.subplot(2,1,2, sharex=ax1)
ax2.plot(...)