Is there a way to "handle" the ANOVA boxplot ?

Hi all, I am doing several ANOVAs in a row and I would like to save each boxplot (I mean automatically, I know how to do it manually). Unfortunately I cannot create a figure handler (such as h=plot(...)) nor rename the box plot using "figure" (commented below). The only ugly workaround I have found so far is by using findobj(allchild(0), 'flat', 'Type', 'figure') after each ANOVA...
Anyone has a better idea ?
%figure('Name','LeftStepScores','NumberTitle','off')
[lSp,lStbl,lSstats] = anova1(leftA);
xticklabels(leftXlabels);
title('Left step scores')
Cheers !

 Accepted Answer

Why don't you just use figure(). anova1() produce 2 figures, you can get their handles using
hTable = figure(1);
hBoxPlot = figure(2);
Similarly for other iteration use
hTable = figure(3);
hBoxPlot = figure(4);
You can also check if you have chosen the correct figure by checking the tag property of figure handle.

2 Comments

Thank you Ameer, it works. I didn't know figure() could be called after the figure has been created. Thanks a lot !

Sign in to comment.

More Answers (1)

You have mentioned the best solution already.
FigList = allchild(groot);
[lSp, lStbl, lSstats] = anova1(leftA);
FigHandle = setdiff(allchild(groot), FigList);
This is not "ugly", but works reliably.
I do not have the toolbox required to run annova1, so I cannot test if the created figure has a hidden handle. But when
xticklabels(leftXlabels);
title('Left step scores')
works correctly, the handle should be not hidden. Then this will work also:
FigHandle = gcf;

1 Comment

Thanks ! gcf won't work here because anova1 generates two figures simultaneously but it's a cool trick !

Sign in to comment.

Products

Release

R2018a

Asked:

on 11 May 2018

Commented:

on 21 May 2018

Community Treasure Hunt

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

Start Hunting!