Учитывая некоторые случайные данные:
points = randn(100,1);
groups = randi([1 2],[100 1]);
Вот еще несколько общих рекомендаций:
g = unique(groups); %# unique group values
clr = hsv(numel(g)); %# distinct colors from HSV colormap
h = zeros(numel(g),1); %# store handles to lines
for i=1:numel(g)
ind = (groups == g(i)); %# indices where group==k
h(i,:) = line(points(ind), groups(ind), 'LineStyle','none', ...
'Marker','.', 'MarkerSize',15, 'Color',clr(i,:));
end
legend(h, num2str(g,'%d'))
set(gca, 'YTick',g, 'YLim',[min(g)-0.5 max(g)+0.5], 'Box','on')
xlabel('Points') ylabel('Groups')
Если у вас есть доступ к статистикеВ панели инструментов есть функция, которая упрощает все вышеперечисленное в одном вызове:
gscatter(points, groups, groups)
Наконец, в этом случае было бы более уместно отобразить Box plot :
labels = num2str(unique(groups),'Group %d');
boxplot(points,groups, 'Labels',labels)
ylabel('Points'), title('Distribution of points across groups')