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

Vas*_*ass 4 matlab matlab-figure

我有一套subplotsin figurein MATLAB.我生成了一组测试,这些测试连接到这些子图中的图形.我想有一个单独的子图,它显示了这些字符串.我不想注释图形或生成一个在其上打印文本的图形.我想在子图上打印大约5行文本.

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

wak*_*jah 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);
Run Code Online (Sandbox Code Playgroud)

请注意,这里我已经传递了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');
Run Code Online (Sandbox Code Playgroud)

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