Is there some way to fit the figure size to the textbox? Example:
I have a = annotation(... 'textbox','Position',[0.1482 0.7333 0.17 0.16],... 'FitHeightToText','on',... 'String','Example');
which makes a textbox in a figure. I would like to fit the size of the figure to this textbox. Is it possible? Thanks.

 Akzeptierte Antwort

Jacob Halbrooks
Jacob Halbrooks am 12 Mär. 2012

1 Stimme

You could compute your desired figure Position from the annotation and then set it, but you'll have to manage the Units consistently and reset the annotation's normalized position at the end. For example, something like this:
a = annotation('textbox','Position',[0.1482 0.7333 0.17 0.16], 'FitHeightToText','on','String','Example');
set(a,'Units','pixels');
aPos = get(a,'Position');
fPos = get(gcf,'Position');
fPos(3:4)=aPos(3:4);
set(gcf,'Position',fPos);
set(a,'Units','norm','Position',[0 0 1 1])
When possible though, it's better to create the container to the desired size first and then create its children using normalized position to fill up the container.

1 Kommentar

Ondrej
Ondrej am 15 Mär. 2012
Thank you Jacob. Great.
I only slightly modified your code, but it works perfectly:
a = annotation('textbox','Position',[0.1482 0.7333 0.17 0.16], 'FitBoxToText','on','String','Example');
set(a,'Units','pixels');
aPos = get(a,'Position');
fPos = get(gcf,'Position');
fPos(3:4)=aPos(3:4);
set(gcf,'Position',fPos,'Paperposition','auto');
set(a,'Units','norm','Position',[0 0 1 1])

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Identification finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by