使用颜色图设置特定值的颜色
Set color of specific values with colormap
所以我想要完成的一个小版本是我有一个矩阵 A;
A = [0 1 0; 2 0 0;1 3 6;9 0 1];
imagesc(A)
所以当我使用 imagesc(A) 时,我得到了一个漂亮的网格,每个值都由不同的颜色表示。但是我希望能够将 0 的值专门设置为白色,并且理想情况下能够根据我认为合适的方式更改其他颜色,例如如果我知道两个值代表 3 和 6 等相同的东西,那么它们可以设置为相同或相对相似的颜色。 imagesc 是不是使用了错误的命令,因为据我所知它使用了颜色渐变。
谢谢
2 个选项:
- 您可以创建自己的颜色图,如 How to create a custom colormap programmatically?
所示
或者简单地将您的矩阵 A
映射到一个可以根据需要着色的矩阵。因此,如果您知道您希望 3
和 6
具有相同的颜色,那么请创建一个映射函数来实现这一点。然后使用 A
索引地图,因此地图的第 3 个和第 6 个元素必须相同,例如
map = [1, 2, 3, 4, 5, 6, 4, 7, 8, 9, 10];
imagesc(map(A+1))
注意 map
中的元素 4 和 7 是相同的,因为你的 A
值是从 0
开始的,这也是为什么 +1
中的原因第二行.
然后选择一个从白色开始的颜色图。
我个人会选择方法 1。
简单的解决方案:
% get colormap and set first value to white
cmap = colormap;
cmap(1,:) = [1 1 1];
% apply new colormap
colormap(cmap);
% display matrix
imagesc(A);
显然你可以用同样的方式改变其他值的颜色
所以我想要完成的一个小版本是我有一个矩阵 A;
A = [0 1 0; 2 0 0;1 3 6;9 0 1];
imagesc(A)
所以当我使用 imagesc(A) 时,我得到了一个漂亮的网格,每个值都由不同的颜色表示。但是我希望能够将 0 的值专门设置为白色,并且理想情况下能够根据我认为合适的方式更改其他颜色,例如如果我知道两个值代表 3 和 6 等相同的东西,那么它们可以设置为相同或相对相似的颜色。 imagesc 是不是使用了错误的命令,因为据我所知它使用了颜色渐变。
谢谢
2 个选项:
- 您可以创建自己的颜色图,如 How to create a custom colormap programmatically? 所示
或者简单地将您的矩阵
A
映射到一个可以根据需要着色的矩阵。因此,如果您知道您希望3
和6
具有相同的颜色,那么请创建一个映射函数来实现这一点。然后使用A
索引地图,因此地图的第 3 个和第 6 个元素必须相同,例如map = [1, 2, 3, 4, 5, 6, 4, 7, 8, 9, 10]; imagesc(map(A+1))
注意
map
中的元素 4 和 7 是相同的,因为你的A
值是从0
开始的,这也是为什么+1
中的原因第二行.然后选择一个从白色开始的颜色图。
我个人会选择方法 1。
简单的解决方案:
% get colormap and set first value to white
cmap = colormap;
cmap(1,:) = [1 1 1];
% apply new colormap
colormap(cmap);
% display matrix
imagesc(A);
显然你可以用同样的方式改变其他值的颜色