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是最强大的。

如果您不想显示超出范围的某些值,那不是colorbaror的工作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

尝试这个:

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 回答
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 回答