Box plot - plotting multiple datasets on one plot
16 views (last 30 days)
Show older comments
Following the documentation I'm unable to get 4 datasets plotted on whisker a plot.
My 4 dataset are called Bheading, Bheading1, Bheading2 and Bheading3.
My code is as follows:
boxplot([Bheading,Bheading1,Bheading2,Bheading3],'Notch','on','Labels',{'dataset1','dataset2',dataset3',dataset4'},'Whisker',1)
This gives me this error: There must be the same number of labels as groups or as the number of elements in X.
If I try to just plot the datasets without labels (like this):
boxplot([Bheading,Bheading1,Bheading2,Bheading3]
Only one box plot appears.
Thanks in advance.
0 Comments
Answers (1)
dpb
on 12 Nov 2017
Edited: dpb
on 12 Nov 2017
Well, you're not following the documentation precisely which says "If X is a matrix, there is one box per column; if X is a vector, there is just one box."
So, in the first case you'd have to have a label for every element in the vector and there would only be a single point for each; in the latter it did precisely what the doc says it'll do. Build the array by column instead of as a single long vector...
boxplot([Bheading.' Bheading1.' Bheading2.' Bheading3.' ],'Notch','on', ...
'Labels',{'dataset1','dataset2',dataset3',dataset4'},'Whisker',1)
While it isn't specifically the problem, it is in general poor practice to make multiple variables of the same name with subsequent indices as identifiers; use an array and indexing instead. Then such code and any other operations is/are much simpler to write and can take advantage of the power of Matlab in vector operations.
data = [Bheading.' Bheading1.' Bheading2.' Bheading3.']; % one array from multiple vectors
boxplot(data,'Notch','on','Labels',{'dataset1','dataset2',dataset3',dataset4'},'Whisker',1)
It would be best practice to create the array in the initial step(s) of the script/function rather than as shown above after having multiple names but we don't have enough information to know from whence the data came to provide specifics.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!