6

私は広範囲の値を持っており、散布図 (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)');
4

3 に答える 3

11

それ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
于 2012-10-04T04:25:24.603 に答える
0

これはどう?

% 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);
于 2012-10-04T07:58:46.740 に答える
0

これを試して:

cmap = colormap; % get current colormap
cmap=cmap([min max],:); % set your range here
colormap(cmap); % apply new colormap
colorbar();
于 2014-01-22T14:53:20.107 に答える