如何在MATLAB中的子图中显示文本/字符串行?

时间:2013-03-21 11:30:32

标签: matlab matlab-figure

我在subplots的{​​{1}}中有一组figure。我生成了一组测试,这些测试连接到这些子图中的图形。我想有一个单独的子图,它显示了这些字符串。我不想注释图形或生成一个在其上打印文本的图形。我想在子图上打印大约5行文字。

我尝试手动将弦放在坐标处,但它变得凌乱。有一种直截了当的方法吗?

1 个答案:

答案 0 :(得分:8)

使用text()函数,将'Parent'属性设置为子图的句柄,即

figure;
h1 = subplot(2, 1, 1);
% Do some plotting on h1

h2 = subplot(2, 1, 2);
text(0, 0, sprintf('%s\n%s\n%s ... etc', line1Str, line2Str, line3Str), 'Parent', h2);

请注意,这里我已经传递了sprintf的返回,以便在字符串中包含换行符(文本接受新行并显示它们没有问题)。

您可能还希望将文本居中在轴上,您可以使用xPos,yPos替换前两个参数,其中包括:

xl = xlim(h2); 
xPos = xl(1) + diff(xl) / 2; 
yl = ylim(h2); 
yPos = yl(1) + diff(yl) / 2; 
t = text(xPos, yPos, sprintf('%s\n%s\n%s ... etc', line1Str, line2Str, line3Str), 'Parent', h2);
set(t, 'HorizontalAlignment', 'center');

最后一行也将对齐设置为居中。