Adding a scatter of points in different colour to a boxplot

14 Ansichten (letzte 30 Tage)
DM
DM am 29 Jun. 2020
Kommentiert: DM am 30 Jun. 2020
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 Kommentare
dpb
dpb am 29 Jun. 2020
Use scatter instead of plot
Adam Danz
Adam Danz am 29 Jun. 2020
Bearbeitet: Adam Danz am 29 Jun. 2020
dpb gave you the same suggestion I suggested ~4 hrs earlier. It must be a good suggestion :)

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Adam Danz
Adam Danz am 29 Jun. 2020
Bearbeitet: Adam Danz am 30 Jun. 2020
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 Kommentare
Adam Danz
Adam Danz am 30 Jun. 2020
I see.
I've updated my answer.
DM
DM am 30 Jun. 2020
Now it works perfectly. Thanks a lot :)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by