一组子图的标题

Woe*_*itg 9 matlab label title figure subplot

有许多子图,每个子图都有自己的标题.如何在所有这些子图上添加标题?我希望这个标题显示在顶部中心.

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)')
Run Code Online (Sandbox Code Playgroud)

alp*_*ra7 7

从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');
Run Code Online (Sandbox Code Playgroud)

特里戈


Woe*_*itg 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');
Run Code Online (Sandbox Code Playgroud)

  • 请不要将纯代码的答案转储到 Stack Overflow。你写的答案不仅仅是为了回答问题,而且是为了让未来的读者能够理解。我现在读了这篇文章,发布 3 年后,不知道我应该看什么。请在代码周围的文本中或在代码内的注释中解释您的代码。 (4认同)
  • 如果您没有用于 `suptitle()` 的工具箱怎么办?任何解决办法? (3认同)

Fly*_*yto 5

我为没有生物信息学工具箱的人们找到的最简单的方法是:

a = axes;
t = title('My title');
a.Visible = 'off';
t.Visible = 'on';
Run Code Online (Sandbox Code Playgroud)

您正在做的是创建一组新的轴,默认情况下,它们覆盖整个图形,并在这些轴上创建标题。然后,使轴变为不可见,并且将其替换为再次变为可见的标题。

如果生成的标题与事物冲突,请拨弄a.Position来移动轴。

是的,这不是基本功能的一部分,这很可笑,但是工具箱中隐藏了很多一行或两行函数,人们可能会说range;-)(看着你,。)