在Python中使用matplotlib显示彩色二维数组
我想用Matplotlib把一个numpy的二维矩阵画成彩色的矩阵。我有一个9行9列的数组:
my_array = diag(ones(9))
# plot the array
pcolor(my_array)
我想把对角线的前面三个元素设置成一种颜色,接下来的三个元素设置成另一种颜色,最后三个元素再设置成另一种颜色。我想用十六进制的颜色代码来指定颜色,比如“#FF8C00”。我该怎么做呢?
另外,我还想知道怎么给pcolor中值为0的元素设置颜色?
1 个回答
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会得到第二个颜色,依此类推。