web-dev-qa-db-ja.com

2D配列matplotlibのカラープロット

だから、これは本当に簡単になると思っていましたが、わかりやすい例で探しているものを正確に見つけるのは非常に困難でした。

基本的に私は位相プロットを作成したいので、2D配列があると仮定して、どのように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()
30

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()
41
heltonbiker

コードの主要な行がある最も簡単な例は次のとおりです。

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]])

plt.imshow(H)
plt.show()

enter image description here

15
user185160