MATLAB 添加图例

图例是在图表上标注数据序列的有用方法。以下示例展示了如何创建一个图例并进行一些常见的修改,例如更改位置、设置字体大小和添加标题。你还可以创建具有多个列的图例,或者为绘制数据的子集创建图例。


函数

legend函数,详细参考:


创建简单图例

创建一个折线-散点图。该图由折线两种图形符号,为该图添加图例:


figure
x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1)

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled')
hold off

legend('sin(x/2)','2016')
折线-散点图添加图例

用DisplayName指定标签


x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1,'DisplayName','sin(x/2)')

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled','DisplayName','2016')

legend
用DisplayName显示图例

当添加或删除一个数据系列时,图例会自动更新。如果向图中添加更多数据,请使用DisplayName属性指定标签。如果没有设置DisplayName属性,那么图例将使用表单“dataN”的标签。

添加2017年的数据散点图,注意将下面的代码添加到上面legend的前面:


x3 = [0 1 2 3 4 5];
y3 = [0.1 0.4 0.6 0.9 0.8 0.7];
scatter(x3,y3,'filled','DisplayName','2017')
drawnow
hold off
添加2017数据

图例位置和方向

通过设定位置和方向属性的名称-值对来指定图例的位置和方向。将位置设置为八个基数或基数间方向中的一个,在本例中为“northwest”,即西北。将方向设置为“ northwest ”(默认)或“ horizontal ”,就像本例中那样。指定单元格数组中的标签。

若要求不高,也可以用鼠标直接点击图例进行拖动


x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1)

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled')
hold off

legend({'sin(x/2)','2016'},'Location','northwest','Orientation','horizontal')

图例字体大小和标题


x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1,'DisplayName','sin(x/2)')

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled','DisplayName','2016')
hold off

lgd = legend;
lgd.FontSize = 14;
lgd.Title.String = '2016 Data';
调整图例位置

多列图例


x = linspace(0,10);
y1 = sin(x);
y2 = sin(0.9*x);
y3 = sin(0.8*x);
y4 = sin(0.7*x);
y5 = sin(0.6*x);
y6 = sin(0.5*x);

plot(x,y1,'DisplayName','sin(x)')
hold on
plot(x,y2,'DisplayName','sin(0.9x)')
plot(x,y3,'DisplayName','sin(0.8x)')
plot(x,y4,'DisplayName','sin(0.7x)')
plot(x,y5,'DisplayName','sin(0.6x)')
plot(x,y6,'DisplayName','sin(0.5x)')
hold off

lgd = legend;
lgd.NumColumns = 2;

注意最后一行,用NumColumns函数指定图例的例数。

设置字体大小和标题





公众号

关注公众号,获取一手资讯

“ MATLAB 添加图例 ” comments 0

评论/回复

电子邮件地址不会被公开。 必填项已用*标注