2 回答
TA贡献1831条经验 获得超9个赞
颜色图只是一个 3 列矩阵,其中每一行定义一种颜色。具体来说,这些列分别定义了 R、G、B 分量。因此,您可以手动创建颜色图。
例如,可以通过将 B 分量设置为 1 并让其他两个范围从 0 到 1 来生成从蓝色到白色的颜色图:
cmap = [linspace(0,1,256).' linspace(0,1,256).' ones(256,1)];
colormap(cmap)
colorbar('horizontal')
通过重新排列颜色图的列,可以实现更接近蓝色/粉色/白色示例的内容hot:
cmap = hot(256);
cmap = cmap(:,[2 3 1]);
colormap(cmap),
colorbar('horizontal')
BrewerMap
该函数可以生成许多漂亮的颜色图,可在File Exchange或GitHub 上找到。
手动生成的颜色图的一个问题是它们通常在感知上并不统一。相比之下,Matlab 的许多默认颜色图(如parula
或 Python 之类magma
)在感知上是统一的。这是关于统一和非统一颜色图的讨论,重点是parula
. 您可以通过 Ander Biguri 的File Exchange 功能在 Matlab 中使用 Python 的颜色图。
parula
这是 Matlab和 Python 的两个示例plasma
。在它们中的任何一个中,沿水平轴的相等增量大致对应于对“颜色变化”的类似感知。
TA贡献1877条经验 获得超1个赞
看起来您的屏幕只是反转了颜色。如果您想在 MATLAB 中反转颜色图,您可以通过执行以下操作相当简单地做到这一点:
colormap(1-hot);
这会将热点地图中的红色变为蓝色,将黑色变为白色。如果您希望反过来(即红色 -> 白色,黑色 -> 蓝色),您可以这样做:
colormap(1-flipud(hot));
这应该适用于任何颜色图。
添加回答
举报