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.

 채택된 답변

DGM
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
dpb 2022년 1월 3일

0 개 추천

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.

카테고리

도움말 센터File Exchange에서 Annotations에 대해 자세히 알아보기

제품

릴리스

R2021b

질문:

2022년 1월 3일

댓글:

ST
2023년 7월 1일

Community Treasure Hunt

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

Start Hunting!

Translated by