1. ホーム
  2. python

[解決済み] matplotlib を使って画像を並べてプロットする

2023-04-22 05:43:03

質問

を使用して画像を並べて表示する方法を知りたいのですが。 matplotlib を使って画像を並べて表示する方法を教えてください。

一番近いのはこれです。

このようなコードで生成されました。

f, axarr = plt.subplots(2,2)
axarr[0,0] = plt.imshow(image_datas[0])
axarr[0,1] = plt.imshow(image_datas[1])
axarr[1,0] = plt.imshow(image_datas[2])
axarr[1,1] = plt.imshow(image_datas[3])

しかし、他の画像を表示させることができないようです。インデックスを管理するのは大変だと思うので、もっと良い方法があるのではないかと思っています。私は のドキュメントに目を通しました。 に目を通しましたが、間違ったものを見ているような気がしています。誰かが私に例を提供するか、正しい方向に私を指摘することができるでしょうか?

EDITです。

をご覧ください。 答え から デュハイム にあるように、グリッドサイズを自動的に決定する関数が必要な場合。

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

あなたが直面している問題は、あなたがしようとしていることです。 を割り当てることです。 の返り値を imshow (これは matplotlib.image.AxesImage を既存のaxesオブジェクトに追加する。

の異なる軸に画像データをプロットするのが正しい方法です。 axarr

f, axarr = plt.subplots(2,2)
axarr[0,0].imshow(image_datas[0])
axarr[0,1].imshow(image_datas[1])
axarr[1,0].imshow(image_datas[2])
axarr[1,1].imshow(image_datas[3])

コンセプトは全てのサブプロットで同じで、ほとんどの場合、axesインスタンスはpyplot (plt)インタフェースと同じメソッドを提供します。 例えば、もし ax がサブプロットの軸の1つである場合、通常の折れ線グラフをプロットするために ax.plot(..) の代わりに plt.plot() . これは、実はソースにある リンク先のページ .