MATLAB Answers

Why isn't there any simple command to create a grouped boxplot in MATLAB yet?

74 views (last 30 days)
I am trying to plot a grouped boxplot on MATLAB but surprisingly Excel can do better!Can anyone suggest the best way to create a grouped boxplot as easy as making one for barchart?


Sign in to comment.

Accepted Answer

Massimo Zanetti
Massimo Zanetti on 9 Oct 2016
Edited: Walter Roberson on 9 Oct 2016
Sure, there is matlab function specific for this:
load carsmall
title('Miles per Gallon by Vehicle Origin')
xlabel('Country of Origin')
ylabel('Miles per Gallon (MPG)')


Show 1 older comment
Massimo Zanetti
Massimo Zanetti on 9 Oct 2016
Inspect the help page of the boxplot function, by using CELL input arguments (e.g., for "grouping variables" argument) you can easily obtain the results that you are showing.
Just as an example:
data = rand(20,24);
month = repmat({'jan' 'feb' 'mar' 'apr' 'may' 'jun' 'jul' 'aug' 'sep' 'oct' 'nov' 'dec'},1,2);
simobs = [repmat({'sim'},1,12),repmat({'obs'},1,12)];
boxplot(data,{month,simobs},'colors',repmat('rb',1,12),'factorgap',[5 2],'labelverbosity','minor');
Massimo Zanetti
Massimo Zanetti on 9 Oct 2016
According to what I know, yes they must have the same size. The reason is that, the boxplot helps visualizing different feature distributions of the same dataset of samples. Assume you have 100 observed animals, and for any of them you observe height, weigth. Then your data will be 100x2 matrix.
However, if you really need to explain different sized data, here is how to do it:

Sign in to comment.

More Answers (0)


Translated by