0

各列にタイムスタンプが付けられた一連の画像をキャプチャしました。タイムスタンプも付けられた他の信号 (ジャイロスコープ データなど) を同時にサンプリングしました。これらの信号を、時間軸を共有する垂直に並べられた 2 つのサブプロットにプロットしたいと思います。

私が理解している限り、サブプロットで imshow() を 2 回呼び出して、各画像を x に沿った異なる位置に配置することはできません (両方とも開始位置を共有しているため、重複しており、これを克服する設定はないようです) ):

import matplotlib.pyplot as plt

fig, ax = plt.subplots(nrows=2, ncols=1, sharex=True)

ax[0].imshow(np.atleast_2d(I[0][0]).T, cmap=plt.cm.gray, \
                            interpolation='Nearest', aspect='auto')
ax[0].imshow(np.atleast_2d(I[0][1]).T, cmap=plt.cm.gray, \
                            interpolation='Nearest', aspect='auto')

グーグルで調べた後、上部のサブプロット内に追加の軸を作成することを伴う潜在的な解決策を見つけました。その中に各列をプロットできます。

import matplotlib.pyplot as plt

fig, ax = plt.subplots(nrows=2, ncols=1, sharex=True)

ax[0].set_ylabel('Rows')
imax = fig.add_axes(ax[0].get_position().min + \
                [ax[0].get_position().xmax - ax[0].get_position().xmin] + \
                [ax[0].get_position().ymax - ax[0].get_position().ymin], \
                                                                sharey=ax[0])
imax.set_ylim([I.shape[2], 0])
imax.set_axis_off()
imax.imshow(np.atleast_2d(I[0][0]).T, cmap=plt.cm.gray, \
                             interpolation='Nearest', aspect='equal')

これにより、関連する軸を移動できる場所ならどこにでも各列を柔軟に配置できますが、他のすべてのプロットで表示される各タイムスタンプの画像内の相対位置を見つけるのはかなり面倒です。

これを行う簡単な方法がありませんか?

4

1 に答える 1