How can I indicate significance in boxplots?
37 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Angela Braig
el 12 de Feb. de 2015
Comentada: Himanshu Saxena
el 12 de Jul. de 2021
Hi guys,
I would like to compare data of several groups using boxplots. Therefore, I put 4 boxes beside each other. Now I am looking for a possibility to display asterisks over the boxplots (* for p<0.05, * * for p<0.01, ...) and also brackets to make clear which groups are significantly different at which level. To see what I am hoping to be able to do you can go on that page: http://www.frontiersin.org/files/Articles/1379/fnsys-04-00033-r1/image_m/fnsys-04-00033-g004.jpg (this is not my figure, but I would like to do something similar).
Do you have any idea which commands or toolboxes could be helpful in this case?
Thanks a lot!
0 comentarios
Respuesta aceptada
Star Strider
el 12 de Feb. de 2015
For your box plot, experiment with this to get the result you want:
d = randi(10, 20, 3);
figure(1)
boxplot(d)
yt = get(gca, 'YTick');
axis([xlim 0 ceil(max(yt)*1.2)])
xt = get(gca, 'XTick');
hold on
plot(xt([2 3]), [1 1]*max(yt)*1.1, '-k', mean(xt([2 3])), max(yt)*1.15, '*k')
hold off
The ‘xt’ and ‘yt’ variables get the x-tick and y-tick values, and are then used to do the ‘sigline’ and asterisk calculations on. The axis call simply creates room at the top of the plot box for the line and asterisk.
4 comentarios
Jake Ogata Bernstein
el 24 de Jul. de 2020
One thing I also discovered is you may have to adjust the y-axis range in the axis call. For example, I'm working with data that range from -23 to +18, so I rewrote the axis call as
axis = ([xlim -25 ceil(max(yt)*1.2)])
Himanshu Saxena
el 12 de Jul. de 2021
It seems these commands do not work for boxchart command. Is there any other way to do the same for boxchart?
Más respuestas (1)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!