How to dynamically name each box on a boxplot?
2 views (last 30 days)
Show older comments
Hi! I have a struct file, in this, there are some data (see 'data.mat'). I need to make a boxplot with this. But I dont know how to use the fields name of the boxplot to put it in the boxplot figure. Can anyone help me?
Let me make it clear. In the data, there are many possible combinations who I need to compare in groups. In this way, I need, for example, see what is the effect of the parameter "b" in my results. So, for example, I need to compare the boxplot of 'data.a1.b1.c1.mem' with 'data.a1.b2.c1.mem', 'data.a1.b3.c1.mem' and 'data.a1.b4.c1.mem'. I wanna know how to put, dinamically, a1, b* and c1 in corresponding boxplot for future references, in other words, in the figure below, where I have 1, 2, 3 and 4, I need to put something like a1b1c1, a1b2c1, a1b3c1 and a1b4c1 respectively in a dynamic way.
How can I do it?
Thank you!
0 Comments
Accepted Answer
Adam Danz
on 23 Apr 2019
Edited: Adam Danz
on 21 May 2019
Then you can use those strings as your XTickLabels.
Here's some code that demonstrates this - you can adapt it to your needs. The demo produces a boxplot figure with nested field names as x labels.
data.a1.b1.c1 = nan;
data.a1.b2.c1 = nan;
data.a1.b3.c1 = nan;
data.a1.b4.c1 = nan;
% Get all field names
fields = fieldnamesr(data, '-full');
xLabels = strrep(fields, '.', '');
boxplot(randi(100,1,1000), randi(4,1,1000))
set(gca, 'XTickLabels', xLabels)
More Answers (0)
See Also
Categories
Find more on Data Distribution Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!