extracting the median of a boxplot

39 visualizaciones (últimos 30 días)
zahra zol
zahra zol el 15 de Abr. de 2017
Editada: Songbai Ji el 10 de Jun. de 2021
hie. i have 6 boxplot figures like what i have attached to this post. all i want is to extract the median values of each box in the first subplot of each figure. can anybody help pls?

Respuesta aceptada

Star Strider
Star Strider el 15 de Abr. de 2017
From the documentation:
  • boxplot creates a visual representation of the data, but does not return numeric values. To calculate the relevant summary statistics for the sample data, use the following functions: {In the documentation, the function list follows}
So, to get the median of the first box in a particular plot, do something like this:
Data = randn(100, 10);
Median_1 = median(Data(:,1));
figure(1)
boxplot(Data);
grid
  3 comentarios
Star Strider
Star Strider el 15 de Abr. de 2017
My pleasure.
I did my best to use findobj to get the median (as the documentation for boxplot suggests), but I could not make it work. Apparently it is only possible to use findobj to change specific properties of boxplot.
Songbai Ji
Songbai Ji el 10 de Jun. de 2021
Editada: Songbai Ji el 10 de Jun. de 2021
Actually, boxplot returns a list of handles that you can ues to retreive the data:
t = rand(100,1);
hd = boxplot(t);
Now hd is a 7-by-1 array. You can check:
get(hd(1))
etc. to see what data it provides -- check the "tag" field. There should be one that gives median (use 'ydata').
I think boxplot will be able to remove outliers. Directly getting median from data does not.
You can also use findobj to retreive the handle:
hd = findobj('tag', 'Median');
then:
get(hd)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by