在 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])
结果看起来像像这样:
我有一个等高线图,其中的数据从 -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])
结果看起来像像这样: