一组子图的标题
Posted
技术标签:
【中文标题】一组子图的标题【英文标题】:Title over group of subplots 【发布时间】:2016-02-09 04:53:44 【问题描述】:有很多子图,每个子图都有自己的标题。如何在所有这些子图组上添加标题? 我希望这个标题显示在顶部中心。
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
。
@Adiel 等人:请注意,suptitle
在用于演示的生物信息学工具箱中。对于没有这个工具箱的人,有several option on the MathWorks File Exchange。
为什么Matlab不把它做成内置函数?对于任何用户来说,它都是最有用的功能。
【参考方案1】:
自 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');
【讨论】:
【参考方案2】:我为没有生物信息学工具箱的人找到的最简单的方法是:
a = axes;
t = title('My title');
a.Visible = 'off';
t.Visible = 'on';
您正在做的是创建一组新的轴,默认情况下覆盖整个图形,并在这些轴上创建一个标题。然后将轴设为不可见,并为再次可见的标题覆盖此设置。
如果生成的标题与物体发生碰撞,请使用a.Position
来移动坐标轴。
是的,这不是基本功能的一部分,这很荒谬,但是工具箱中隐藏了很多一两行功能,人们可能会这么说;-)(看着你,range
。 )
【讨论】:
【参考方案3】: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');
【讨论】:
如果您没有suptitle()
的工具箱怎么办?有什么解决办法吗?
我不知道。也许你可以问另一个问题,希望能得到一些答案。
请不要将纯代码答案转储到 Stack Overflow。你写答案不仅仅是为了回答问题,也是为了让未来的读者理解。我在发布 3 年后现在读到了这篇文章,但不知道我应该看什么。请在代码周围的文本中或在代码中的 cmets 中解释您的代码。以上是关于一组子图的标题的主要内容,如果未能解决你的问题,请参考以下文章