我在subplots
的{{1}}中有一组figure
。我生成了一组测试,这些测试连接到这些子图中的图形。我想有一个单独的子图,它显示了这些字符串。我不想注释图形或生成一个在其上打印文本的图形。我想在子图上打印大约5行文字。
我尝试手动将弦放在坐标处,但它变得凌乱。有一种直截了当的方法吗?
答案 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');
最后一行也将对齐设置为居中。