matlab如何实现不同的值显示不同的颜色
举例一
一、视图
二、代码
作者:CoderMan
链接:https://www.zhihu.com/question/503639152/answer/2257427351
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
clear;clc;
[x, y, z] = peaks(30);
min_z = min(z(:));
max_z = max(z(:));
% 映射到 0 - 1
z = (z - min_z) ./ (max_z - min_z);
% 映射到 0 - 1000
z = z * 1000;
% 颜色 简单起见 设置成数据范围大小的数组
c_map = zeros(1000, 3);
% 绿色
c_map(1:160, :) = repmat([0, 1, 0], 160, 1);
% 蓝色
c_map(161:260, :) = repmat([0, 1, 1], 100, 1);
% 黄色
c_map(261:530, :) = repmat([1, 1, 0], 270, 1);
% 红色
c_map(530:end, :) = repmat([1, 0, 0], 471, 1);
subplot(1, 2, 1)
surf(x, y, z);
colormap(c_map)
colorbar
shading interp
subplot(1, 2, 2)
contourf(x, y, z);
colormap(c_map)
colorbar
举例二、MATLAB画二维线条渐变颜色
x = -5:0.1:5; y = x.^2; z = x.^2; patch([x,nan],[y,nan],[z,nan],'EdgeColor','flat','LineWidth',1,'MarkerFaceColor','flat','FaceColor','none') colorbar
效果如下所示:
% 加载保存为mat变量的矩阵
load circRNA_ss cirRNA_ss
% 分别执行下面语句
imagesc(circRNA_ss);
colormap jet
colorbar
color的域值为0—1
plot(x,y,'Color',[1 0 0]);代表红色
plot(x,y,'Color',[0 1 0]);代表绿色
plot(x,y,'Color',[0 0 1]);代表蓝色
plot(x,y,'Color',[0.3 0.8 0.9]);则是三种颜色组成的新颜色。