问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MATLAB绘图教程:添加标题、标签和图例

创作时间:
作者:
@小白创作中心

MATLAB绘图教程:添加标题、标签和图例

引用
CSDN
1.
https://blog.csdn.net/weixin_44209907/article/details/138343903

在MATLAB中,为图形添加标题、标签和图例是数据可视化的重要组成部分。这些元素能够帮助读者更好地理解图表内容,使数据呈现更加清晰和专业。本文将详细介绍如何使用MATLAB为图形添加这些元素,并通过具体示例展示其操作方法。

1. 为图添加标题和轴标签

此示例说明如何使用titlexlabelylabel函数向图中添加标题和轴标签。它还说明如何通过更改字体大小来自定义坐标区文本的外观。

1.1 创建简单的线图

创建x,它是 100 个介于-2π和2π之间的线性间隔值。将y1y2创建为x的正弦和余弦值。绘制两组数据。

x = linspace(-2*pi,2*pi,100);
y1 = sin(x);
y2 = cos(x);
figure
plot(x,y1,x,y2)  

1.2 添加标题

使用title函数向图中添加标题。要显示希腊符号π,请使用 TeX 标记\pi

title('Line Plot of Sine and Cosine Between -2\pi and 2\pi')  

1.3 添加坐标轴标签

使用xlabelylabel函数向图中添加轴标签。

xlabel('-2\pi < x < 2\pi')
ylabel('Sine and Cosine Values')  

1.4 更改字体大小

Axes对象具有可用来自定义坐标区外观的属性。例如,FontSize属性控制标题、标签和图例的字体大小。

使用gca函数访问当前Axes对象。然后使用圆点表示法设置FontSize属性。

ax = gca;
ax.FontSize = 13;  

如果MATLAB版本在R2022a以上,您也可以使用fontsize函数更改坐标区文本的字体大小。

1.5 带有变量值的标题

通过使用num2str函数将值转换为文本,可在标题文本中包含变量值。您可以使用类似的方法为轴标签或图例条目添加变量值。

添加带有 sin(π)/2值的标题。

k = sin(pi/2);
title(['sin(\pi/2) = ' num2str(k)])  

2. 添加图例

图例是标记绘制在图上的数据序列的有用方法。下列示例说明如何创建图例并进行一些常见修改,例如更改位置、设置字体大小以及添加标题。您还可以创建具有多列的图例或为所绘制数据的子集创建图例。

2.1 创建简单的图例

创建一个具有线图和散点图的图窗。为每个图添加具有说明的图例。将图例标签指定为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')  

2.2 使用 DisplayName 指定标签

您也可以使用DisplayName属性指定图例标签。调用绘图函数时,将DisplayName属性设置为名称-值对组。然后,调用legend命令创建图例。

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属性,则图例使用'dataN'形式的标签。添加 2017 年数据的散点图。

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  

2.3 自定义图例外观

legend函数会创建一个Legend对象。Legend对象具有可用于自定义图例外观的属性,如LocationOrientationFontSizeTitle属性。有关完整列表,请参阅 Legend 属性。

您可以通过两种方式设置属性:

  • legend命令中使用名称-值对组。在大多数情况下,当您使用名称-值对组时,必须在元胞数组中指定标签,例如legend({'label1','label2'},'FontSize',14)
  • 使用Legend对象。您可以将Legend对象作为legend函数的输出参数返回,例如lgd = legend。然后,通过圆点表示法使用lgd来设置属性,如lgd.FontSize = 14

2.4 图例位置和方向

通过将LocationOrientation属性设置为名称-值对组来指定图例的位置和方向。将位置设置为八个基本及斜角方位之一,在本例中为'northwest'。将方向设置为'vertical'(默认)或'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')  

2.5 图例字体大小和标题

通过设置FontSizeTitle属性来指定图例字体大小和标题。将Legend对象赋给变量lgd。然后,通过圆点表示法使用lgd更改属性。

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';  

2.6 具有多列的图例

创建一个包含六个线图的图。通过将NumColumns属性设置为 2 来添加一个具有两列的图例。

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;  

2.7 在图例中包含图的子集

合并两个条形图和一个散点图。将Bar对象b1b2指定为legend函数的第一个输入参数,创建一个仅包含条形图的图例。以向量形式指定对象。

x = [1 2 3 4 5];
y1 = [.2 .4 .6 .4 .2];
b1 = bar(x,y1);
hold on
y2 = [.1 .3 .5 .3 .1];
b2 = bar(x,y2,'BarWidth',0.5);
y3 = [.2 .4 .6 .4 .2];
s = scatter(x,y3,'filled');
hold off
legend([b1 b2],'Bar Chart 1','Bar Chart 2')  

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号