如何在MATLAB图例中添加独立文本

时间:2017-01-23 10:41:46

标签: matlab plot matlab-figure

我需要图例中与图形数据无关的附加文字以及图例标题。 像这样的东西(它是在OriginLab中制作的):

enter image description here 关注此链接Add custom legend without any relation to the graph 我可以使用<div class="row"> <div class="col-xlg-4 col-xl-12 col-lg-12 col-md-7 col-sm-12 col-xs-12" title="FAQ" baCardClass="medium-card with-scroll"> <FAQ-omni></FAQ-omni> <ul class="alShare"> <li (click)="Show(1)">Locator</li> <li (click)="Show(2)">Offer</li> <li (click)="Show(3)">Contact</li> <li (click)="Show(4)">Holiday</li> <li (click)="Show(5)">FAQ</li> </ul> </div> </div> 添加一些文字。但是在本文中有一个缩进:

enter image description here

如何避免这种缩进?是否有更优雅的方法来添加与图例无关的文本以及图例标题?

4 个答案:

答案 0 :(得分:5)

legend函数将返回,因为它的第二个输出参数处理构成图例中符号和文本的所有组件。因此,您可以在图例中将“虚拟”线条绘制为占位符,在创建图例时对手柄重新排序以将文本放置在所需位置,并相应地修改图例对象。这是一个例子:

Code99

enter image description here

答案 1 :(得分:2)

您可以使用注释。它并不完美,但只需很少的调整就能得到你想要的东西。这是一个例子:

% somthing to plot:
x = [0:0.1:5; 5:0.1:10].';
y = sin(x);
% plot the real data:
plot(x,y);
hold on
% make some space in the legend:
Spacing_lines = 3;
h = plot(nan(size(x,1),Spacing_lines));
hold off
set(h,{'Color'},{'w'}); % clear the dummy lines
% place the legend:
hl = legend([{'lable1','lable2'} repmat({''},1,Spacing_lines)]);
% add your text:
annotation('textbox',hl.Position,'String',{'Some info';'in 2 lines'},...
    'VerticalAlignment','Bottom','Edgecolor','none');

从此你得到:

txt 2 legend

答案 2 :(得分:1)

您可以通过这种方式将任何文本添加到任何一点:

txt1 = 'some information';
text(x1,y1,txt1)

其中x1, y1 - 坐标。

enter image description here

顺便说一下,函数text函数有很多不同的属性(颜色,字体大小,对齐等)。

答案 3 :(得分:0)

我认为最简单的方法是创建一些虚拟函数,绘制它但设置color =“none” - 这样它只会出现在图例中(如果那是你想要它的地方)。