基于MATLAB中plot函数绘制曲线图

 

%% 本文件用于标定实验数据,建立实际数据与检测像素之间的关系。
%   作者:德赛法
%   时间:20190415
%%% 初始化
tic;                                                                        % 计时开始
clc;clear;close all;                                                        % 清除命令行、空间变量,关闭figure
%%%
%%% 读取数据到工作空间
filepath = ...
 'C:\Users\yashunxu\Desktop\旋转液体实验\Calculation20190413\ProcessImage';  % 路径
filename1 = fullfile(filepath,'DetectedData.txt');                          % 检测数据文件名
filename2 = fullfile(filepath,'RealData.txt');                              % 实际平面文件名
DetectedData = importdata(filename1);                                       % 导入检测平面数据
RealData = importdata(filename2);                                           % 导入实际平面数据
x = DetectedData.data(1) - DetectedData.data;                               % 保存到x,注意!用初始值进行“减”是为了转换像素座标到实际座标
y = RealData.data - RealData.data(1);                                       % 保存到y
%%%
%%% 处理数据
p = polyfit(x,y,2);                                                         % 拟合二次系数
py = polyval(p,x);                                                          % 拟合数值
error = py - y;                                                             % 拟合误差
%%%
%%% 数据可视化
figure;                                                                     % 打开figure
hold on;                                                                    % 保持figure,防止更新
% 绘图参数初始化
LineSpec = {'-';'--';':';'-.'};                                             % 线型
MarkerSpec = {'+';'o';'*';'.';'x';'s';'d';'^';'v';'>';'<';'p';'h'};         % 标记类型
ColorSpec = {'r';'g';'b';'c';'m';'y';'k';'w'};                              % 颜色
LineWidth = 2;                                                              % 线宽
MarkerSize = 10;                                                            % 标记大小
                     
FontName = 'Times New Roman';                                               % 字体
TitleFontSize = 14;                                                         % 标题字号
XYLabelFontSize = 14;                                                       % 座标轴标注字号
LegendFontSize = 8;                                                         % 图例字号
XYAxisFontSize = 12;                                                        % 座标轴字号
XTick = 0:20:220;                                                           % x座标轴间隔
YTick = -10:10:90;                                                          % y座标轴间隔
%
% 绘图
plot(x,y,'*r','linewidth',LineWidth);
plot(x,py,'-g','linewidth',LineWidth);
plot(x,error,'ob','linewidth',LineWidth);
%
% 绘图标题,数轴标注,图例
title('M','fontname',FontName,'fontsize',TitleFontSize);
xlabel('DetecedData(pixel)','fontname',FontName,'fontsize',XYLabelFontSize);
ylabel('RealData(mm)','fontname',FontName,'fontsize',XYLabelFontSize);
legend('Detected','Fitting','Errors',...
    'fontname',FontName,'fontsize',LegendFontSize,'location','northwest');
%
% 座标轴范围
set(gca,'FontSize',XYAxisFontSize,'xtick',XTick,'ytick',YTick);
axis([min(x),max(x),min(y)-10,max(y)+10]);
%
%%%
%%% 保存拟合系数到文件
save('p','p');
%%%
toc;                                                                        % 计时结束

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章