如何只使用现有颜色图的一部分?
How to use only a part of an existing colormap?
我正在使用颜色图可视化一些数据:
DataToPlot = pcolor(myData);
set(DataToPlot,'edgecolor','none'); %to remove grid
colormap(flipud(spring));
caxis([-4 4]);
colorbar;
目前与值 -4
关联的颜色是黄色,与 +4
关联的颜色是亮粉色。我想修改这个比例尺,并将与 -4
相关联的颜色作为现在 0
的颜色(浅粉色),并将与 +4
相关联的颜色保留为亮粉色。
我该怎么做?
让我们考虑以下示例:
figure(); imagesc(magic(4)-8); colorbar;
% Flipped "spring" colormap:
cm = flipud(spring); colormap(cm);
现在我们有:
如果我们只想要颜色映射的 子集 (例如,黄色到粉红色),我们可以获取 spring
返回的数组行的子集:
cm = flipud(spring(200)); colormap(cm(1:100,:));
其中200
是我们要得到的colormap的分辨率,100
大概是我们要切割的图的位置,得到:
如果我们想重新缩放颜色图(或者换句话说,改变数据到颜色的映射,使得 min/max 值不对应于 bottom/top 颜色),我们可以使用 caxis
函数为颜色图设置不同的限制。例如:
cm = flipud(spring); colormap(cm); caxis([-7 24]);
使用完整的颜色图产生相同的数据着色:
奖励:别忘了您还可以组合不同的颜色图:
cm = [flipud(bone(50)); copper(50)]; colormap(cm);
我正在使用颜色图可视化一些数据:
DataToPlot = pcolor(myData);
set(DataToPlot,'edgecolor','none'); %to remove grid
colormap(flipud(spring));
caxis([-4 4]);
colorbar;
目前与值 -4
关联的颜色是黄色,与 +4
关联的颜色是亮粉色。我想修改这个比例尺,并将与 -4
相关联的颜色作为现在 0
的颜色(浅粉色),并将与 +4
相关联的颜色保留为亮粉色。
我该怎么做?
让我们考虑以下示例:
figure(); imagesc(magic(4)-8); colorbar;
% Flipped "spring" colormap:
cm = flipud(spring); colormap(cm);
现在我们有:
如果我们只想要颜色映射的 子集 (例如,黄色到粉红色),我们可以获取 spring
返回的数组行的子集:
cm = flipud(spring(200)); colormap(cm(1:100,:));
其中200
是我们要得到的colormap的分辨率,100
大概是我们要切割的图的位置,得到:
如果我们想重新缩放颜色图(或者换句话说,改变数据到颜色的映射,使得 min/max 值不对应于 bottom/top 颜色),我们可以使用 caxis
函数为颜色图设置不同的限制。例如:
cm = flipud(spring); colormap(cm); caxis([-7 24]);
使用完整的颜色图产生相同的数据着色:
奖励:别忘了您还可以组合不同的颜色图:
cm = [flipud(bone(50)); copper(50)]; colormap(cm);