我想在matplotlib中将numpy中的二维矩阵绘制为彩色矩阵。我有以下9乘9数组:

my_array = diag(ones(9))

# plot the array
pcolor(my_array)

我想将对角线的前三个元素设置为某个颜色,后三个元素设置为不同的颜色,最后三个元素设置为不同的颜色。我想用十六进制代码字符串指定颜色,比如“ff8c00”。我该怎么做?
另外,如何为pcolor设置0值元素的颜色?

最佳答案

要使元素具有不同的颜色,请为它们指定不同的值:

my_array = diag([1,1,1,2,2,2,3,3,3])

要指定颜色,请尝试:
from matplotlib.colors import ListedColormap, NoNorm
cmap = ListedColormap(['#E0E0E0', '#FF8C00', '#8c00FF', '#00FF8C'])
pcolor(my_array,cmap=cmap,norm=NoNorm())

norm=NoNorm()参数避免了矩阵值的任何缩放,因此0得到列表中的第一种颜色,1得到第二种颜色,等等。

08-25 07:58