extracting the median of a boxplot

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?

 Accepted Answer

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 Comments

Thank u Strider. i was actually trying to find a way to determine the median by taking some handle or sth like that to the boxplots themselves. but i guess its is either really hard or impossible. i did as u said and it worked. thanks for caring.
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 on 10 Jun 2021
Edited: Songbai Ji on 10 Jun 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)

Sign in to comment.

More Answers (0)

Categories

Tags

Asked:

on 15 Apr 2017

Edited:

on 10 Jun 2021

Community Treasure Hunt

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

Start Hunting!