我有一套subplots
in a figure
in MATLAB
。我生成了一组测试,这些测试与这些子图中的图形相关联。我想有一个单独的子图来呈现这些字符串。我不想注释图表或生成在其上打印文本的图表。我想在子图上打印大约 5 行文本。
我尝试手动将字符串放置在坐标处,但它变得混乱。有直接的方法吗?
我有一套subplots
in a figure
in MATLAB
。我生成了一组测试,这些测试与这些子图中的图形相关联。我想有一个单独的子图来呈现这些字符串。我不想注释图表或生成在其上打印文本的图表。我想在子图上打印大约 5 行文本。
我尝试手动将字符串放置在坐标处,但它变得混乱。有直接的方法吗?
使用 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');
最后一行也将对齐设置为居中。