1. ホーム
  2. python

[解決済み] 2次元配列のカラープロット matplotlib

2022-02-01 09:19:32

質問

簡単なことだと思っていたのですが、わかりやすい例を探すのに苦労しています。

基本的に、私は位相プロットを作成したいので、2次元配列があると仮定して、どのようにして matplotlib にタイトル、軸、凡例(カラーバー)を付けることができるプロットに変換させればいいのでしょうか。

私は、どんな2D配列でも動作する、必要なものだけを使用する非常にシンプルな骨組みのソリューションを探しています。

これは単純なことで、私が厚かましいだけなのは確かなのですが、本当に困っているのです。

例題を見ながらツールを使っていますが、私がやろうとしていることにあまり適していないようです。このグラフの一般的な外観は好きですが、2dArrayを渡してこれと同じ結果を得ることができればと思います。

import numpy as np
import matplotlib as ml
import matplotlib.pyplot as plt

H = [[1,2,3,4][5,6,7,8][9,10,11,12][13,14,15,16]]

fig = plt.figure(figsize=(6, 3.2))

ax = fig.add_subplot(111)
ax.set_title('colorMap')
X,Y = np.meshgrid(xedges, yedges)
plt.pcolormesh(X, Y, H)
ax.set_aspect('equal')

cax = fig.add_axes([0.12, 0.1, 0.78, 0.8])
cax.get_xaxis().set_visible(False)
cax.get_yaxis().set_visible(False)
cax.patch.set_alpha(0)
cax.set_frame_on(False)
plt.colorbar(orientation='vertical')
plt.show()

解決方法は?

XとYが定義されていないので、投稿された例はうまくいかないと思います。そこで、代わりに pcolormesh を使ってみましょう。 imshow :

import numpy as np
import matplotlib.pyplot as plt

H = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8],
              [9, 10, 11, 12],
              [13, 14, 15, 16]])  # added some commas and array creation code

fig = plt.figure(figsize=(6, 3.2))

ax = fig.add_subplot(111)
ax.set_title('colorMap')
plt.imshow(H)
ax.set_aspect('equal')

cax = fig.add_axes([0.12, 0.1, 0.78, 0.8])
cax.get_xaxis().set_visible(False)
cax.get_yaxis().set_visible(False)
cax.patch.set_alpha(0)
cax.set_frame_on(False)
plt.colorbar(orientation='vertical')
plt.show()