how do I add MEAN to Boxplot?
    62 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Mohammed
 el 13 de Oct. de 2016
  
I am thinking about locating MEAN as a straight horizontal line or a symbol inside the boxplots for illustration purposes. I would say it is possible since distributions are not significantly skewed. Any suggestions?!
Here is a MATLAB sample code:
rng default  % For reproducibility
x1 = normrnd(5,1,100,1);
x2 = normrnd(6,1,100,1);
figure
boxplot([x1,x2],'Notch','on','Labels',{'mu = 5','mu = 6'})
title('Compare Random Data from Different Distributions')
cust_colr = [0, 0.5, 1
    0.60156, 0.80078, 0.19531
    0.5, 0, 0];
h = findobj(gca,'Tag','Box');
 for j=1:length(h)
     patch(get(h(j),'XData'),get(h(j),'YData'),cust_colr(j,:));
 end
Output picture is shown below:

0 comentarios
Respuesta aceptada
  michio
    
 el 14 de Oct. de 2016
        The ability to plot the mean values using boxplot is not available as of release R2016b. To work around this issue, you can find these values and plot them manually. The example below shows how to plot the mean value of each group:
 % Generate random data
 X = rand(10);
 % Create a new figure and draw a box plot
 figure;
 boxplot(X)
 % Overlay the mean as green diamonds
 hold on
 plot(mean(X), 'dg')
 hold off
8 comentarios
Más respuestas (1)
  Camilo Cárdenas
 el 13 de Abr. de 2022
        Hi, thank you for your post.
I have got a question:
What aboout, if you have more than one box in a Diagramm? How can you assingn it to each group of data?
Thanks!
2 comentarios
  Simon Diaz
 el 28 de Sept. de 2022
				Hi, try to 
% Generate random data
 X = rand(10,4);
 % Create names of each group
 names = {'name1','name2','name3','name4'};
 % Create a new figure and draw a box plot
 figure;
 boxplot(X,'Labels',names)
 % Overlay the mean as green diamonds
 hold on
 plot(1:length(X(1,:)),mean(X), 'dg')  % x-axis is the intergers of position
 hold off
  JB676
 el 2 de Abr. de 2024
				
      Editada: JB676
 el 2 de Abr. de 2024
  
			mu_T = % set of values for category 1
mu_RN = % set of values for category 2
mu_T_RN, grp_T_RN = % combined dataset values and labels
hb = boxplot(mu_T_RN,grp_T_RN,'whisker',1);
% replace median with mean value
set(hb(6,1),'ydata',[mean(mu_T) mean(mu_T)]);
set(hb(6,2),'ydata',[mean(mu_RN) mean(mu_RN)]);
Get the handle to the boxplot, then adjust item 6 'ydata'. For a two category example:
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





