4

我有一套subplotsin a figurein MATLAB。我生成了一组测试,这些测试与这些子图中的图形相关联。我想有一个单独的子图来呈现这些字符串。我不想注释图表或生成在其上打印文本的图表。我想在子图上打印大约 5 行文本。

我尝试手动将字符串放置在坐标处,但它变得混乱。有直接的方法吗?

4

1 回答 1

8

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

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');

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

于 2013-03-21T11:45:54.230 回答