MATLAB创建一个跨越子图的标题。

3

我有一个3x3的子图数组。我知道如何在每个子图上添加标题,也知道如何使用suptitle函数在整个图表上添加“超级标题”,但我无法弄清楚如何使标题仅显示在每一列上。我还想在行上做类似的事情。可以想象成头部为臀部、膝盖和踝关节,左侧为角速度、力矩和功率。您有什么想法吗?

2个回答

6
您可以使用text来标记列和行。
subplot(2,2,1)
title('a')
h1 = text(-0.25, 0.5,'row 1');
set(h1, 'rotation', 90)
text(0.35,1.2,'column 1');

subplot(2,2,2)
title('b')
text(0.35,1.2,'column 2');
subplot(2,2,3)

title('c')
h = text(-0.25, 0.5, 'row 2');
set(h, 'rotation', 90)
subplot(2,2,4)
title('d')

根据您绘图的x和y范围,需要调整文本位置。


完美!谢谢!我已经找到了文本函数,但是想知道是否有更好的方法。 - dustynrobots
2
为什么不只在顶部行的图表上使用 title,而不是所有图表上都使用?同样地,在左侧列的图表上只使用 y 轴标签? - FakeDIY
如果您不想在每个子图上添加标题和y标签以及列和行标签,则可以使用该方法。 - Molly

0

如其他答案的评论所述,您可以使用各个子图中的标题和y标签来完成此操作。

在顶部行上使用title来生成列标签。 对于行标签,请利用(可能未记录的)功能,允许您拥有多行标签,例如:

ylabel({'行标签' '实际y标签'});

这是一个令人讨厌的曲解,如果您的子图在循环内生成,则会很麻烦,但在Mathworks给我们提供适当的方法之前,这是我所知道的最好方法。


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