Fit figure size to textbox

3 次查看(过去 30 天)
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.

采纳的回答

Jacob Halbrooks
Jacob Halbrooks 2012-3-12
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 个评论
Ondrej
Ondrej 2012-3-15
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])

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Visual Exploration 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by