0

-90 度から 90 度までのデータを含む等高線図があります。今のところジェットを使用しているので、このようなマップがありますここに画像の説明を入力

カラーマップを変更して、グラデーションを使用する代わりに、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])

このカラーバーの作成方法を知っている人はいますか? 乾杯

4

1 に答える 1

0

を含む、Matlab のすべてのカラーマップ生成関数はjet、必要なカラーマップ エントリの数を指定する引数を取ります。あなたの場合、180 / 5 = 36 の個別の色が必要です。

colormap(jet(36))

36 色が 5 度のステップを正確にカバーするようにするには、色軸を明示的に設定します。

caxis([-90 90])

結果は、たとえば次のようになります。

于 2015-03-26T15:44:01.953 に答える