Adding a scatter of points in different colour to a boxplot

14 visualizaciones (últimos 30 días)
DM
DM el 29 de Jun. de 2020
Comentada: DM el 30 de Jun. de 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 comentarios
dpb
dpb el 29 de Jun. de 2020
Use scatter instead of plot
Adam Danz
Adam Danz el 29 de Jun. de 2020
Editada: Adam Danz el 29 de Jun. de 2020
dpb gave you the same suggestion I suggested ~4 hrs earlier. It must be a good suggestion :)

Iniciar sesión para comentar.

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Scatter Plots en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by