我正在使用色彩映射来显示一些数据:
DataToPlot = pcolor(myData);
set(DataToPlot,'edgecolor','none'); %to remove grid
colormap(flipud(spring));
caxis([-4 4]);
colorbar;
此时与值-4
关联的颜色为黄色,与+4
关联的颜色为亮粉色。我想修改此比例,并将-4
颜色与0
(浅粉红色)的颜色相关联,并将与+4
相关联的颜色保留为亮粉色。
我该怎么做?
答案 0 :(得分:0)
让我们考虑以下示例:
figure(); imagesc(magic(4)-8); colorbar;
% Flipped "spring" colormap:
cm = flipud(spring); colormap(cm);
现在我们有:
如果我们只需要色图的子集(例如黄色到粉红色),我们可以获取spring
返回的数组行的子集:
cm = flipud(spring(200)); colormap(cm(1:100,:));
其中200
是我们想要获得的色彩映射的分辨率,而100
大约是我们想要剪切的地图的位置,产生:
如果我们想重新缩放色彩图(或换句话说,将数据映射到颜色,使得最小值/最大值不对应于底色/顶色),我们可以使用caxis
函数来为colormap设置不同的限制。例如:
cm = flipud(spring); colormap(cm); caxis([-7 24]);
使用完整的色彩映射产生相同的数据着色:
奖励:不要忘记你也可以组合不同的色彩映射:
cm = [flipud(bone(50)); copper(50)]; colormap(cm);