子图组的标题

13

有许多子情节,每个子情节都有自己的标题。如何在所有这些子情节组的顶部添加一个标题?我希望这个标题显示在顶部中心。

x = linspace(-5,5);

y1 = sin(x);
subplot(2,5,[1:2])
plot(x,y1)
title('y=sin(x)')

y2 = cos(x);
subplot(2,5,[3:4])
plot(x,y2)
title('y=cos(x)')

y3 = tan(x);
subplot(2,5,[5,10])
plot(x,y3)
title('y=tan(x)')

y4 = sin(2*x);
subplot(2,5,[6:7])
plot(x,y1)
title('y=sin(2x)')

y5 = cos(2*x);
subplot(2,5,[8:9])
plot(x,y2)
title('y=acos(2x)')

1
你需要使用命令suptitle - Adiel
4
@Adiel等:请注意,suptitle在生物信息学工具箱中,用于演示。对于没有此工具箱的人,可以在MathWorks文件交换中心上找到几个选项 - horchler
1
为什么Matlab不将它作为内置函数?这是任何用户最有用的函数。 - Sadegh
3个回答

11

自Matlab 2018b以来,新的函数sgtitle可以向副图组添加标题,只需添加sgtitle('Subplot Title');即可。它不需要任何工具箱。

例如:

subplot(1,2,1)
plot(cos(0:40));
title('cos');

subplot(1,2,2)
plot(sin(0:40))
title('sin');

sgtitle('Trigo');

trigo


7
我找到对于没有生物信息学工具箱的人来说最简单的方法是这样的:
a = axes;
t = title('My title');
a.Visible = 'off';
t.Visible = 'on';

你正在创建一个新的坐标轴集合,默认情况下,它覆盖整个图形,并在这些坐标轴上创建一个标题。然后将坐标轴设置为不可见,并针对标题进行了覆盖,使其再次可见。
如果生成的标题与其他内容发生冲突,请调整a.Position以移动坐标轴。
是的,这不是基本功能的一部分,这很荒谬,但有许多隐含在工具箱中的一两行函数也可能是如此(看着你,range)。

5
x = linspace(-5,5);

y1 = sin(x);
subplot(2,5,[1:2])
plot(x,y1)
title('y=sin(x)')

y2 = cos(x);
subplot(2,5,[3:4])
plot(x,y2)
title('y=cos(x)')

y3 = tan(x);
subplot(2,5,[5,10])
plot(x,y3)
title('y=tan(x)')

y4 = sin(2*x);
subplot(2,5,[6:7])
plot(x,y1)
title('y=sin(2x)')

y5 = cos(2*x);
subplot(2,5,[8:9])
plot(x,y2)
title('y=acos(2x)')

suptitle('my title');

3
如果您没有suptitle()的工具箱,有什么替代方案吗? - Austin
我不知道。也许你可以问另一个问题,希望能得到一些答案。 - Sadegh
4
请勿在Stack Overflow上发布仅包含代码的答案。你的回答不仅是为了回答问题,还要让未来的读者能够理解。我阅读这个问题时已经过去了3年,但我仍然不知道该看什么。请在代码周围的文本中或代码内部的注释中解释你的代码。 - Adriaan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接