二维阵列matplotlib的Colorplot

Sla*_*off 32 python plot numpy matplotlib

所以,我认为这将非常简单,但我在一个易于理解的例子中找到了很多我正在寻找的东西.

基本上我想制作相位图,所以假设我有一个二维数组,我怎样才能让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()
Run Code Online (Sandbox Code Playgroud)

hel*_*ker 43

我担心你发布的例子不起作用,因为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()
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您将获得轴图例中的数组索引.如果您的行和列具有X和Y值,请查看`imshow()`的`extent`参数 (3认同)

use*_*160 18

以下是具有关键代码行的最简单示例:

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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 在 Python 3.4 中,上述代码的图像变得模糊。我不得不关闭插值。plt.imshow(H, 插值='无') (4认同)