在Python中用matplotlib显示彩色的2d数组

时间:2010-06-13 23:51:16

标签: python numpy scipy matplotlib

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

my_array = diag(ones(9))

# plot the array
pcolor(my_array)

我想将对角线的前三个元素设置为某种颜色,接下来的三个是不同的颜色,最后三个是不同的颜色。我想用十六进制代码字符串指定颜色,比如“#FF8C00”。我怎样才能做到这一点?

另外,如何设置pcolor的0值元素的颜色?

1 个答案:

答案 0 :(得分:2)

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

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获取第二种颜色等。