私は広範囲の値を持っており、散布図(x、y、z)としてプロットしている間、z軸を示すカラーバーは広範囲の値を示していますが、今はより低い範囲の値には興味がありません。カラーバーの範囲を変更する方法はありますか?コードの次の部分をプロットします。また、ログプロットをプロットするつもりです。例えば。両対数プロットの範囲を最大値の14に設定したいと思います。
一部の値をまったく表示しないようにしたい。カラーバーの範囲が制限されているように、たとえば14から最大までです。現在、両対数プロットで9から最大まで表示されています。
scatter(x(1:end-1), y(1:end-1), 5, gnd);
title('G plot (m^-^2)');
colorbar('eastoutside');
xlabel(' X-axis (microns)');
ylabel('Y-axis (microns)');
figure;
log_g=log10(gnd);
scatter(x(1:end-1), y(1:end-1), 5,log_g);
colorbar('eastoutside');
xlabel(' X-axis (microns)');
ylabel('Y-axis (microns)');
title('G Density, log plot (m^-^2)');
caxis
はあなたが探しているコマンドだと思います。使用法:
caxis([minValue maxValue])
このようにcaxis
を使用すると、範囲外のすべての値は[minValue maxValue]
は、カラーマップの最小値または最大値でそれぞれ色付けされます。
colorbar
とその仲間はcolormap
を使用しているため、使用する色の数を調整する場合は、現在のカラーマップを調整する必要があります。このようにしてください:
%# get current colormap
map = colormap;
%# adjust for number of colors you want
rows = uint16(linspace(1, size(map,1), NUM_COLORS)) ;
map = map(rows, :);
%# and apply the new colormap
colormap(map);
もちろん、これをcaxis
と組み合わせるのが最も強力です。
範囲外の値を表示したくない場合は、colorbar
またはcaxis
の仕事ではありません。それはあなた次第です。つまり、プロットされるデータを調整する必要があります。 しないプロットしたいすべての値はNaN
です。そうすることで、Matlabはこれらのデータをプロットしたくないことを理解します。
data( indices_to_data_not_to_plot ) = NaN;
surf(x,y,data); %# or whatever you're using
これはどう?
% don’t know why, but apparently your x and y are one value too long?
x = x(1:end-1); y = y(1:end-1);
% only plot values of 14 or higher
scatter(x(gnd>=14), y(gnd>=14), 5, gnd(gnd>=14);
これを試して:
cmap = colormap; % get current colormap
cmap=cmap([min max],:); % set your range here
colormap(cmap); % apply new colormap
colorbar();