这个答案是为了回应 OP 的评论,要求如何将不同的标记设置为不同的颜色。
方法 1:逻辑索引
要求您为每种颜色定义索引。在下面的示例中,红色标记是随机选择的;其余的标记将是蓝色的。
% MATLAB R2017a
mat1 = 100*rand(20,1);
mat2 = 100*rand(20,1);
idxRed = rand(20,1)> 0.5;
idxBlue = ~idxRed;
s(1) = scatter(mat1(idxRed),mat2(idxRed),[],'r','filled');
hold on
s(2) = scatter(mat1(idxBlue),mat2(idxBlue),[],'b','filled');
% Cosmetics
daspect([1 1 1])
box on
for j = 1:2
s(j).MarkerEdgeColor = 'k';
s(j).MarkerFaceAlpha = 0.3; % Transparency control
end
方法 2:自定义颜色图
创建一个自定义colormap,直接映射到您想要的颜色。在下面的示例中,颜色图仅包含两种颜色。逻辑变量idxRed 只有两个可能的值,所以这里不需要调用caxis([0 1])。
% Create custom colormap
col1 = [0 1 0]; % Green
col2 = [1 0 0]; % Red
cmap = [col1;col2];
% Plot
colormap(cmap), hold on, box on
scatter(mat1,mat2,[],idxRed,'filled');