Adding text programmatically to a figure
324 ビュー (過去 30 日間)
古いコメントを表示
I have a figure with several subplots in it. I want to place a textbox with some text init which belongs to the entire figure. However, whenever I try to use the text command to place the text, it places it relative to the current subplot but not to the overall figure. How do I overcome this nuance?
Thanks in advance.
0 件のコメント
採用された回答
DGM
2022 年 1 月 3 日
編集済み: DGM
2022 年 1 月 3 日
If you just want to put a title over multiple subplots, you can use sgtitle().
If you want text in a box with arbitrary location, you can use annotations.
[x y z] = peaks(30);
subplot(2,1,1)
surf(x,y,z,'facelighting','flat');
camlight
subplot(2,1,2)
surf(x,y,z,'facelighting','gouraud');
camlight
annstr = sprintf('blah blah\nblah'); % annotation text
annpos = [0.1 0.1 0.1 0.1]; % annotation position in figure coordinates
ha = annotation('textbox',annpos,'string',annstr);
ha.HorizontalAlignment = 'center';
ha.BackgroundColor = [0.9 0.5 1]; % make the box opaque with some color
The other properties of the annotation can be set as needed.
その他の回答 (1 件)
dpb
2022 年 1 月 3 日
text() is exclusively a child of an axes, not a figure. To write text outside the boundaries of an axis, use the annotation object instead.
Or, depending upon just what you want/need for this to contain, use tiledlayout with which you can have a shared title and axes labels. Those may or may not be sufficient for your purpose.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Subplots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!