在matlab中创建一个colormap

时间:2015-03-25 17:18:42

标签: matlab matlab-figure colorbar colormap contourf

我有一个轮廓图,数据从-90度到90度。现在我正在使用jet,所以我有一张看起来像enter image description here

的地图

我被要求更改色彩图,以便不是有渐变,而是每5度有一个固定的颜色(所以我相信36种颜色)。我也想到可能在间隔[5 10]和[-10 -5]中使用相同的颜色,等等,如果这是有道理的。

我的代码很长,因为我有很多要处理的数据,但这只是它的一部分,所以你可以看到我用来绘制这个的函数

%%
x1=data(:,5); %x location
y1=data(:,16); %y location
z1=phi*90; %angle phi
z2=gamma*90; %angle gamma
n=300; precision of grid

%Create regular grid across data space
[X,Y] = meshgrid(linspace(min(x1),max(x1),n), linspace(min(y1),max(y1),n));

figure(3);
contourf(X,Y,griddata(x1,y1,z1,X,Y),100,'EdgeColor', 'None')
%title('Variation of In-plane angle \phi')
axis equal
axis ([0 8000 0 12000]) 
axis off
h=colorbar;
caxis([-90 90])
set(h, 'YTick', [-90:15:90])

有谁知道如何创建此颜色栏? 干杯

1 个答案:

答案 0 :(得分:0)

Matlab中的每个色彩映射生成函数(包括jet)都会使用一个参数来指定应该有多少个色彩映射条目。在您的情况下,您需要180/5 = 36个离散颜色:

colormap(jet(36))

要确保36种颜色完全覆盖5度步长,请明确设置颜色轴:

caxis([-90 90])

结果如下:像这样: