在我们进行绘图时,可能有需要对图形中的点或标上点的实际数值或者表示的序号等相关的内容,让我们的图像能更直观的表示出实际的意义。在MATLAB绘图时,可以使用text()函数在标注的图像上设置想要标注的信息。之前简单介绍过text函数的内容,今天主要是实例讲解text函数批量的设置图注。
1.text函数
函数功能向数据点添加文本说明
语法
text(x,y,txt)
text(x,y,z,txt)
text(___,Name,Value)
text(ax,___)
t = text(___)
说明
text(x,y,txt) 使用由 txt 指定的文本,向当前坐标区中的一个或多个数据点添加文本说明。若要将文本添加到一个点,请将 x 和 y 指定为标量。若要将文本添加到多个点,请将 x 和 y 指定为长度相同的向量。
text(x,y,z,txt) 在三维坐标中定位文本。
text(___,Name,Value) 使用一个或多个名称-值对组指定 Text 对象的属性。例如,'FontSize',14 将字体大小设置为 14 磅。您可以使用上述语法中的任意输入参数组合指定文本属性。如果将 Position 和 String 属性指定为名称-值对组,则不需要指定 x、y、z 和 txt 输入。
text(ax,___) 将在由 ax 指定的笛卡尔坐标区、极坐标区或地理坐标区中创建文本,而不是在当前坐标区 (gca) 中创建文本。选项 ax 可以位于前面的语法中的任何输入参数组合之前。
t = text(___) 返回一个或多个文本对象。使用 t 修改所创建的文本对象的属性。
2.实例1
程序
clc;%清楚命令行窗口命令
clear all;%清除工作区变量
close all;%关闭图形窗口
%数据
data = [0 14.0 11.6
1 1.8 9.6
2 19.4 14.8
3 22.8 3.0
4 4.5 14.2
5 7.0 3.6
6 17.8 16.0
7 28.0 5.7
8 24.4 10.5
9 4.4 5.2
10 13.3 7.2
11 6.6 8.6
12 23.4 14.8
13 8.6 6.0
14 23.2 17.2
15 21.4 7.0
16 19.6 10.2
17 10.0 10.4
18 13.0 18.4
19 17.0 18.0
20 28.2 14.0
21 8.6 15.7
22 19.2 12.4
23 16.2 5.6
24 7.8 1.0
25 8.2 11.8
26 23.2 12.6
27 15.2 3.0
28 26.6 17.0
29 12.0 15.4
30 17.8 5.0
];
num = data(:,1);
x = data(:,2);
y = data(:,3);
%绘图设置标记点类型、颜色、边缘颜色、标记点大小
figure;
plot(x(1),y(1),'r^','Marker','^','MarkerFaceColor','r','MarkerEdgeColor','b','MarkerSize',20);
xlim([0 30]);%设置x轴范围
ylim([0 20]);%设置y轴范围
%设置y的刻度
yticks([0:5:20]);
%设置坐标轴的名称
xlabel('x/km');
ylabel('y/km');
%设置坐标轴对象的字体和大小
set(gca,'FontName','Times New Roman','FontSize',12);
%设置图形标注
text(x(1)-0.3,y(1),'0','FontSize',10);
hold on;
for i = 2:31
plot(x(i),y(i),'bo','Marker','o','MarkerFaceColor','b','MarkerEdgeColor','r','MarkerSize',6);
text(x(i)+0.3,y(i),num2str(num(i)),'FontSize',10);
end
运行结果
3.实例2
程序
clc;
clear all;
close all;
y = [77.71 82.44 84.49 89.05 88.89];
x = [4 6 8 10 12];
figure;
plot(x,y,'k-s','markerface','k');
xlabel('\fontname{宋体}时间窗口大小');
ylabel('\fontname{宋体}准确率\fontname{Times new roman}(%)')
xlim([2 14]);
set(gca,'FontName','Times New Roman','FontSize',12);%修改字体为古罗马
for i = 1:5
text(x(i),y(i)-1,num2str(y(i)),'FontName','Times New Roman');
end
运行结果
本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。
作 者 | 郭志龙
编 辑 | 郭志龙
校 对 | 郭志龙