Adding a scatter of points in different colour to a boxplot

7 vues (au cours des 30 derniers jours)
DM
DM le 29 Juin 2020
Commenté : DM le 30 Juin 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 commentaires
dpb
dpb le 29 Juin 2020
Use scatter instead of plot
Adam Danz
Adam Danz le 29 Juin 2020
Modifié(e) : Adam Danz le 29 Juin 2020
dpb gave you the same suggestion I suggested ~4 hrs earlier. It must be a good suggestion :)

Connectez-vous pour commenter.

Réponse acceptée

Adam Danz
Adam Danz le 29 Juin 2020
Modifié(e) : Adam Danz le 30 Juin 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 commentaires
Adam Danz
Adam Danz le 30 Juin 2020
I see.
I've updated my answer.
DM
DM le 30 Juin 2020
Now it works perfectly. Thanks a lot :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Scatter Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by