在 matlab 中创建颜色图

Create a colormap in matlab

我有一个等高线图,其中的数据从 -90 度到 90 度。现在我正在使用 jet,所以我有一张看起来像这样的地图

我被要求更改颜色图,这样我就没有渐变,而是每 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])

有谁知道如何创建这个颜色条? 干杯

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

colormap(jet(36))

要确保 36 种颜色正好覆盖 5 度阶梯,请明确设置颜色轴:

caxis([-90 90])

结果看起来像像这样: