您可以使用a
ListedColormap将白色和红色指定为颜色图中的唯一颜色,并且边界确定从一种颜色到另一种颜色的过渡位置:
import matplotlib.pyplot as pltfrom matplotlib import colorsimport numpy as npnp.random.seed(101)zvals = np.random.rand(100, 100) * 10# make a color map of fixed colorscmap = colors.ListedColormap(['white', 'red'])bounds=[0,5,10]norm = colors.BoundaryNorm(bounds, cmap.N)# tell imshow about color map so that only set colors are usedimg = plt.imshow(zvals, interpolation='nearest', origin='lower', cmap=cmap, norm=norm)# make a color barplt.colorbar(img, cmap=cmap, norm=norm, boundaries=bounds, ticks=[0, 5, 10])plt.savefig('redwhite.png')plt.show()
结果图形只有两种颜色:
我为一个稍有不同的问题提出了相同的建议:Python中的2D网格数据可视化
该解决方案受到matplotlib示例的启发。该示例说明
bounds必须比使用的颜色数多一。
的
BoundaryNorm是,映射到整数,然后将其用于分配的对应颜色的一系列值的归一化。
cmap.N在上面的示例中,仅定义了颜色数量。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)