使用MATLAB将两个Excel文件中的数据显示在同一幅图上,并且使得左右纵坐标轴均能够被利用起来。本文件涉及:读取文件数据>>数据可视化>>图像保存。主要用到了:xlsread函数、plotyy函数和print函数,其余函数是用来修改图形的一些参数。代码如下:
%% 本文件用于在同一幅图上显示两个纵坐标值
% 读文件数据-->数据可视化
% 作者:德赛法
% 时间:20190325
%
tic;%开始计时
clc;clear;close all;%清除变量
% - 1 读文件数据 -
filepath = fullfile('C:\Users\yashunxu\Desktop\zhu');%文件路径
filename1 = strcat(filepath, '\工作簿1', '.xlsx');%文件名
filename2 = strcat(filepath, '\工作簿2', '.xlsx');
[num1,txt1,raw1] = xlsread(filename1); %读取excel文件数据
[num2,txt2,raw2] = xlsread(filename2);
L = length(num1);
x = 1:L;
%
% - 2 数据可视化 -
%字体字号设置
titleFontName = 'Times New Roman';%标题字体
xylabelFontName = 'Times New Roman';%xy轴字体
legendFontName = 'Times New Roman';%
xyaxisFontName = 'Times New Roman';
titleFontSize = 14;
xylabelFontSize = 14;
legendFontSize = 8;
xyaxisFontSize = 12;
LineWidth = 2;
figure;
[hAx,hLine1,hLine2] = plotyy(x, num1, x, num2);%画图
%改画线
set(hLine1,'LineStyle','o','Color','b');hold on;%线1的线型
set(hLine1,'LineStyle','-.','Color','b','LineWidth',LineWidth);hold on;%线1的线型
set(hLine2,'LineStyle','o','Color','r');hold on;
set(hLine2,'LineStyle','-','Color','r','LineWidth',LineWidth);hold on;
%
%改坐标轴
set(hAx(1), 'YTick',[0,5,10,15,20,25,30,35],'ycolor','k','fontsize',xyaxisFontSize);%改图1的纵坐标
set(hAx(2), 'YTick',[0,0.05,0.10,0.15,0.20,0.25,0.30,0.35],'ycolor','k','fontsize',xyaxisFontSize);%改图2的纵坐标
set(hAx(2),'yTickLabel',num2str(get(hAx(2),'yTick')','%.2f'));%更改坐标标注数值小数点位数
axis(hAx(1), [0 50 0 35]);%限制图1的范围
axis(hAx(2), [0 50 0 0.35]);%
%
%标注
xlabel('点距序号','fontname',xylabelFontName,'fontsize',xylabelFontSize);%标注x轴文字
ylabel(hAx(1),'长度测距误差/mm','fontname',xylabelFontName,'fontsize',xylabelFontSize);%标注图1的y轴
ylabel(hAx(2),'长度测距误差/mm','fontname',xylabelFontName,'fontsize',xylabelFontSize);%标注图2的y轴
legend('标定前','标定后');%图例
%
% - 3 保存图片 -
print -dtiff -r600 myphoto;%-dtiff是格式,-r600是分辨率,myphoto是保存到的文件名,即生成的文件为myphoto.tif,分辨率1000ppi
toc;%结束计时