通过混合两种颜色在 Matlab 中创建 heatmap/colormap
Creating a heatmap/colormap in Matlab, by mixing two colors
嘿,我有两个 400x400 的大矩阵。我想创建一个 heatmap/colormap。当前代码:
res = matrix_1*256/2 + matrix_2*256/2;
%res = res -max(max(res));
HeatMap(res)
surf(res,'EdgeColor','none');
view(0,90);
colormap(gray);
colorbar
disp('done');
哪里有热图功能大家可以去看看。但是要对第二个进行可视化,它会导致:
然而,这并没有让我知道哪个矩阵占主导地位。但只有两者都占主导地位(白色),两者都不占主导地位(黑暗)。我想绘制一个使用融合数据的图。例如。矩阵 1 是红色的细微差别,矩阵 2 是绿色的细微差别:
rgb = [matrix_1(i,ii), matrix_2(i,ii), 0]
然后我想用 rgb 代表的颜色制作一个二维图。这可能吗 ?我已经看过制作我自己的颜色图(但你猜到没有好的结果)。
我找到了类似 and 的解决方案,但我如何为二维绘图中的每个点指定特定颜色?
像这样:
RGB = cat(3, matrix_1, matrix_2, zeros(size(matrix_1)));
imshow(RGB)
现在图表将是黑色,两者都不占优势,红色 matrix_1
但 matrix_2
不是,绿色 matrix_2
但 matrix_1
不是并且他们都占主导地位的黄色。
如果您愿意,您甚至可以将其转换回索引图像并使用 rgb2ind
获得以这种方式着色的 colormap
,然后使用原始 [=18] 创建曲面图=] 用于高度(注意不再需要缩放它)和你的新索引图像(ind
)来指定不再完全受高度控制的颜色
res = (matrix_1 + matrix_2)/2;
[ind, map] = rgb2ind(RGB);
surf(res, ind, 'EdgeColor','none');
colormap(map)
colorbar
嘿,我有两个 400x400 的大矩阵。我想创建一个 heatmap/colormap。当前代码:
res = matrix_1*256/2 + matrix_2*256/2;
%res = res -max(max(res));
HeatMap(res)
surf(res,'EdgeColor','none');
view(0,90);
colormap(gray);
colorbar
disp('done');
哪里有热图功能大家可以去看看。但是要对第二个进行可视化,它会导致:
然而,这并没有让我知道哪个矩阵占主导地位。但只有两者都占主导地位(白色),两者都不占主导地位(黑暗)。我想绘制一个使用融合数据的图。例如。矩阵 1 是红色的细微差别,矩阵 2 是绿色的细微差别:
rgb = [matrix_1(i,ii), matrix_2(i,ii), 0]
然后我想用 rgb 代表的颜色制作一个二维图。这可能吗 ?我已经看过制作我自己的颜色图(但你猜到没有好的结果)。
我找到了类似
像这样:
RGB = cat(3, matrix_1, matrix_2, zeros(size(matrix_1)));
imshow(RGB)
现在图表将是黑色,两者都不占优势,红色 matrix_1
但 matrix_2
不是,绿色 matrix_2
但 matrix_1
不是并且他们都占主导地位的黄色。
如果您愿意,您甚至可以将其转换回索引图像并使用 rgb2ind
获得以这种方式着色的 colormap
,然后使用原始 [=18] 创建曲面图=] 用于高度(注意不再需要缩放它)和你的新索引图像(ind
)来指定不再完全受高度控制的颜色
res = (matrix_1 + matrix_2)/2;
[ind, map] = rgb2ind(RGB);
surf(res, ind, 'EdgeColor','none');
colormap(map)
colorbar