Filter löschen
Filter löschen

Fit figure size to textbox

4 Ansichten (letzte 30 Tage)
Ondrej
Ondrej am 10 Mär. 2012
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
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 Visual Exploration finden Sie in Help 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