自动标记子图

时间:2012-04-24 00:51:54

标签: matlab

我在图中有4个子图,想要标记a,b,c和d。我想将这些字母自动放在每个子图的左上角。我知道我可以手动添加文本,但有更好的方法吗?

2 个答案:

答案 0 :(得分:5)

您可以将这些内容添加到脚本中:

subplot(2,2,1)
text(0.02,0.98,'a','Units', 'Normalized', 'VerticalAlignment', 'Top')
subplot(2,2,2)
text(0.02,0.98,'b','Units', 'Normalized', 'VerticalAlignment', 'Top')
subplot(2,2,3)
text(0.02,0.98,'c','Units', 'Normalized', 'VerticalAlignment', 'Top')
subplot(2,2,4)
text(0.02,0.98,'d','Units', 'Normalized', 'VerticalAlignment', 'Top')

请注意,我假设您的子图以2x2网格排列,并且它们都是2D图。如果这些假设不成立,则修改子图的前两个参数和/或将z坐标添加到文本中。

答案 1 :(得分:2)

您也可以在子图中指定所需的行数,并使用函数char递增字母:

% data:
myTriangle=(triang(100));
amplitudeFactor=[1 0.7 0.6  0.4 0.2];

% Plot, specifying number of lines in subplot:
nLine=2;
nPlot=length(amplitudeFactor);
for ind=1:nPlot
    subplot(nLine, ceil(nPlot/nLine),ind)
    plot(myTriangle*amplitudeFactor(ind))
    set(gca,'YLim',[0 1])
    text(0.02,0.98,char('a' + ind - 1),'Units', 'Normalized', 'VerticalAlignment', 'Top')
end