大家好,又见面了,我是你们的朋友全栈君。
MATLAB绘制实验数据折现图
在论文或者文章写作中,经常需要使用图形来表示我们的实验结果。一般来说,这种表示方式比表格更加直观、更加可视化。因此,本文给出一种使用MATLAB处理数据得到折线图的教程。
1. 待处理数据形式
待处理的数据为迭代次数与SR、time、RC、length、steerNum、steerAngle、validNode这七个指标的走势图。即随着迭代次数的增加,这七个指标的走势情况。 并且,实验数据包含一个改进和两个对比,三个数据都保存在txt文件中,如下所示。
- dealmeans-RRTstar.txt
iteration SR time RC lengthsteerNum steerAngle validNode 150 0 nan nan nan nan nan nan 300 0 nan nan nan nan nan nan 500 0 nan nan nan nan nan nan 1000 0.142857 0.291912 0.0962069 344.143 46.8571 816.639 383.286 1500 0.469388 0.831647 0.107638 347.348 47.6957 923.343 607.478 2000 0.693878 0.726488 0.100066 345.912 46.8235 842.842 753.235 2500 0.816327 0.826433 0.104683 348.025 46.8 883.326 953.75 3000 0.877551 1.11224 0.108346 352.163 47.9535 934.25 1100.91 3500 0.877551 1.61856 0.104273 347.256 47.4884 889.123 1299.21
- dealmeans-BRRTstar.txt
iteration SR time RC lengthsteerNum steerAngle validNode 150 0 nan nan nan nan nan nan 300 0 nan nan nan nan nan nan 500 0.0816327 0.108026 0.113985 336.5 48 977.567 229 1000 0.673469 0.306055 0.118107 346.394 49.3636 1049.82 426 1500 1 0.617184 0.112612 343.204 48.8571 991.233 601.694 2000 1 1.2277 0.112168 340.429 47.9184 968.744 773.102 2500 1 1.82997 0.113759 337.306 47.1429 966.036 934.673 3000 1 2.46895 0.111037 334.633 47.2041 944.087 1113.04 3500 1 3.27609 0.112627 333.735 46.9592 951.161 1315.67
- dealmeans-BV-RRTstar.txt
iteration SR time RC lengthsteerNum steerAngle validNode 150 1 0.0715696 0.155344 332.959 23.3469 653.243 140.98 300 1 0.181333 0.15514 333.612 25.449 710.931 234.49 500 1 0.377778 0.149981 333.367 26.4694 714.981 344.408 1000 1 1.16517 0.149679 331.408 28.3061 763.375 611.265 1500 1 2.62397 0.143125 328.735 28.9796 746.574 859.041 2000 1 4.57071 0.140159 325.878 29.6327 746.221 1123.14 2500 1 6.14498 0.132265 324.245 30.6531 728.807 1370.67 3000 1 8.19425 0.12972 322.449 30.8776 721.298 1626.59 3500 1 10.9185 0.124152 320.714 30.8163 689.744 1864.41
2. 绘制折线图的MATLAB代码
绘制图形的代码流程为:读取文件,绘制图形,设置xy坐标轴和图例。
代码语言:javascript复制close all;
clc;
%只是第一行有字符,则使用importdata可直接读取数据
data1=importdata('D:大论文试验实验图片第四章补充密集障碍物地图中的实验dealmeans-RRTstar.txt');
data11=data1.data; %若没有这一步,出不出来图。
data2=importdata('D:大论文试验实验图片第四章补充密集障碍物地图中的实验dealmeans-BRRTstar.txt');
data21=data2.data; %若没有这一步,出不出来图。
data4=importdata('D:大论文试验实验图片第四章补充密集障碍物地图中的实验dealmeans-BV-RRTstar.txt');
data41=data4.data; %若没有这一步,出不出来图。
x=data11(:,1);
y11=data11(:,2);
y12=data11(:,3);
y13=data11(:,4);
y14=data11(:,5);
y15=data11(:,6);
y16=data11(:,7);
y17=data11(:,8);
y21=data21(:,2);
y22=data21(:,3);
y23=data21(:,4);
y24=data21(:,5);
y25=data21(:,6);
y26=data21(:,7);
y27=data21(:,8);
y41=data41(:,2);
y42=data41(:,3);
y43=data41(:,4);
y44=data41(:,5);
y45=data41(:,6);
y46=data41(:,7);
y47=data41(:,8);
figure(1); %路径长度曲线
%plot(x,y14,'-bo',x,y24,'-rp',x,y44,'-cs',x,y34,'-g*');
plot(x,y14,'-bo',x,y24,'-rp',x,y44,'-g*','LineWidth',1.2); %在figure(1)中绘制三条曲线,设置折现颜色,粗细
title('迭代次数与路径长度');
xlabel('iteration');
ylabel('Path Length');
lgd1=legend('RRT*','Bi-RRT*','BV-RRT*'); %设置图例
%set(lgd1,'Location','BestOutside');
set(lgd1,'FontName','Times New Roman','FontSize',8) %设置图例的字体
lgd1.ItemTokenSize = [20,20];%设置图例尺寸
figure(2); %执行时间,包括runtime
plot(x,y12,'-bo',x,y22,'-rp',x,y42,'-g*','LineWidth',1.2);
title('迭代次数与执行时间');
xlabel('iteration');
ylabel('time(s)');
lgd2=legend('RRT*','Bi-RRT*','BV-RRT*');
%set(lgd2,'Location','BestOutside');
set(lgd2,'FontName','Times New Roman','FontSize',8)
lgd2.ItemTokenSize = [20,20];
figure(3); %成功率SR
plot(x,y11,'-bo',x,y21,'-rp',x,y41,'-g*','LineWidth',1.2);
title('迭代次数与成功率');
xlabel('iteration');
ylabel('SR');
lgd3=legend('RRT*','Bi-RRT*','BV-RRT*');
%set(lgd3,'Location','BestOutside');
set(lgd3,'FontName','Times New Roman','FontSize',8)
lgd3.ItemTokenSize = [20,20];
figure(4); %有效节点数
plot(x,y17,'-bo',x,y27,'-rp',x,y47,'-g*','LineWidth',1.2);
title('迭代次数与有效节点数');
xlabel('iteration');
ylabel('有效节点数');
lgd4=legend('RRT*','Bi-RRT*','BV-RRT*');
set(lgd4,'Location','BestOutside');
set(lgd4,'FontName','Times New Roman','FontSize',8)
lgd4.ItemTokenSize = [20,20];
figure(5); %转弯次数,转弯角度,路径异常值
subplot(2,2,1); %转弯角度
plot(x,y16,'-bo',x,y26,'-rp',x,y46,'-g*','LineWidth',1.2);
title('迭代次数与路径总转向角度');
xlabel('iteration');
ylabel('路径总转向角度');
subplot(2,2,2); %转弯次数
plot(x,y15,'-bo',x,y25,'-rp',x,y45,'-g*','LineWidth',1.2);
title('迭代次数与路径转弯次数');
xlabel('iteration');
ylabel('路径总转弯次数');
subplot(2,2,3); %路径异常值
plot(x,y13,'-bo',x,y23,'-rp',x,y43,'-g*','LineWidth',1.2);
title('迭代次数与路径异常值');
xlabel('iteration');
ylabel('RC');
legend('RRT*','Bi-RRT*','BV-RRT*');
3. 结果图展示
4 总结
本文使用MATLAB绘制折线图适合对数据进行可视化处理。使用MATLAB绘制的图片还有一个好处是可以保存为.emf格式,这样插入word中不会失真。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132519.html原文链接:https://javaforall.cn