Adding a scatter of points in different colour to a boxplot

14 ビュー (過去 30 日間)
DM
DM 2020 年 6 月 29 日
コメント済み: DM 2020 年 6 月 30 日
I would like to add the mean value of each subject (n=9) to my boxplot but for each subject I would like to use a different colour.
Does anyone know how to do this?
I managed to put the points but all of them appear in same colour. Here is my code:
x = abs(randn(9,1));
y = abs(randn(9,1));
group = [ ones(size(x));
2 * ones(size(y))];
boxplot([x; y],group)
h = boxplot([x;y],group)
set(h,{'linew'},{2})
set(gca,'XTickLabel', {'X'; 'Y'})
allData = {x;y};
h = boxplot([allData{:}],group);
set(h, 'linewidth' ,2)
set(gca,'XTickLabel', {'X'; 'Y'})
hold on
xCenter = 1:numel(allData);
spread=0.2;
for i = 1:numel(allData)
plot(rand(size(allData{i}))*spread -(spread/2) + xCenter(i), allData{i}, 'mo','linewidth', 2)
end
  5 件のコメント
dpb
dpb 2020 年 6 月 29 日
Use scatter instead of plot
Adam Danz
Adam Danz 2020 年 6 月 29 日
編集済み: Adam Danz 2020 年 6 月 29 日
dpb gave you the same suggestion I suggested ~4 hrs earlier. It must be a good suggestion :)

サインインしてコメントする。

採用された回答

Adam Danz
Adam Danz 2020 年 6 月 29 日
編集済み: Adam Danz 2020 年 6 月 30 日
The code in the question is from this answer.
To use different colors for each group of points, you can plot the points within a loop or you can use scatter() which allows you to assign a color for each point.
It looks like you tried the loop method but you're using the same color on each iteration.
Here's what you need to add/change,
colors = jet(numel(allData));
for i = 1:numel(allData)
plot(rand(size(allData{i}))*spread -(spread/2) + xCenter(i), allData{i}, 'o','linewidth', 2, 'Color', colors(i,:))
end
To use different colors for each point within a group, use scatter()
colors = jet(numel(allData{i}));
for i = 1:numel(allData)
scatter(rand(size(allData{i}))*spread -(spread/2) + xCenter(i), allData{i}, ...
80, colors, 'filled')
end
  3 件のコメント
Adam Danz
Adam Danz 2020 年 6 月 30 日
I see.
I've updated my answer.
DM
DM 2020 年 6 月 30 日
Now it works perfectly. Thanks a lot :)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeScatter Plots についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by