基於MATLAB繪製雙縱座標軸圖

使用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;%結束計時

 

 

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