How can I insert a title over a group of subplots?

조회 수: 4,456 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2010년 4월 26일
편집: MathWorks Support Team 2023년 12월 14일
I would like to place a title over a group of subplots. How can I do this?

채택된 답변

MathWorks Support Team
MathWorks Support Team 2023년 12월 8일
편집: MathWorks Support Team 2023년 12월 14일
Starting in R2019b, you can use the tiledlayout and nexttile functions to create a configurable tiling of plots. The configuration options include: 
  • Control over the spacing between the plots and around the edges of the layout 
  • An option for a shared title at the top of the layout 
  • Options for shared x- and y-axis labels 
  • An option to control whether the tiling has a fixed size or variable size that can reflow 
An example of 'tiledlayout' used to create a 2x2 group of subplots is written below:
figure()
tcl = tiledlayout(2,2);
nexttile
title('First Subplot')
nexttile
title('Second Subplot')
nexttile
title('Third Subplot')
nexttile
title('Fourth Subplot')
title(tcl,'Subplot Grid Title')
For more information, see Combine Multiple Plots
 
Starting in R2018b, you can use the 'sgtitle' function to add a title to a group of subplots. For example: 
subplot(2,2,1) 
title('First Subplot') 
subplot(2,2,2) 
title('Second Subplot') 
subplot(2,2,3) 
title('Third Subplot') 
subplot(2,2,4) 
title('Fourth Subplot') 
sgtitle('Subplot Grid Title') 
For more information on the 'sgtitle' function, see https://www.mathworks.com/help/matlab/ref/sgtitle.html.
In previous releases (before R2018b), you can create the appearance of a super title by creating the subplots in a panel and adding a title to the panel. For more information, 
.
  댓글 수: 4
Walter Roberson
Walter Roberson 2018년 6월 18일
suptitle() is part of the Bioinformatics toolbox.
madhan ravi
madhan ravi 2018년 10월 16일
편집: Walter Roberson 2018년 10월 16일
There’s a new feature in 2018b which makes it possible

댓글을 달려면 로그인하십시오.

추가 답변 (5개)

jcjaimes
jcjaimes 2016년 12월 15일
Suptitle does the job
x=1:0.01:10;
subplot(2,2,1); plot(sin(x))
subplot(2,2,2); plot(cos(x))
subplot(2,2,3); plot(cos(x.^2))
subplot(2,2,4); plot(sin(x.^2))
suptitle('I am a super title')

Paul Huxel
Paul Huxel 2018년 10월 9일
Starting in R2018b, you can use sgtitle to add a title to subplot grids:

Bradley Stiritz
Bradley Stiritz 2018년 9월 9일
>Answer by MathWorks Support Team on 26 Apr 2010
>It is not possible to put a title over a group of subplots in MATLAB..
With respect, this is not a helpful comment, as it's apparently not true. It is possible, just not with built-in core Matlab functionality. Most people will hopefully continue reading the thread, and learn about the workarounds. Still, it's not an encouraging or precise statement to begin the group discussion, IMHO.
  댓글 수: 2
ANKUR KUMAR
ANKUR KUMAR 2018년 9월 10일
There is a function suptitle which may does our work. It puts perfectly the title over all subplots.
Cris LaPierre
Cris LaPierre 2018년 10월 25일
FYI: suptitle is only available to those who have the Bioinformatics toolbox, and then it was included in a demo file and is not an actual MathWorks maintained function.
However, as Paul Huxel points out, there is now (r2018b) a function in base MATLAB for this. It is called sgtitle.

댓글을 달려면 로그인하십시오.


Eric Sargent
Eric Sargent 2020년 12월 9일
편집: Eric Sargent 2020년 12월 9일
Starting in R2019b, you can also use tiledlayout and nexttile instead of subplot, which has shared titles and labels. You can use the title, xlabel, and ylabel commands directly with tiledlayouts:
Alternatively, starting in R2018b, the sgtitle function will add a title over a group of subplots.
tl = tiledlayout(3,3);
for i = 1:9
nexttile(tl)
plot(rand(5,1));
end
title(tl,'Layout Title');
xlabel(tl,'Layout XLabel');
ylabel(tl,'Layout YLabel');

Gouater Loic
Gouater Loic 2020년 10월 6일
This video clearly explains that https://www.youtube.com/watch?v=VX-vPvcqoSw

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by