Matlab繪制雙y軸曲線
使用plotyy命令繪制雙y軸坐標(biāo)在作圖時(shí),有時(shí)需要在同一張圖上展示兩個(gè)不同的y軸坐標(biāo)。幸運(yùn)的是,Matlab提供了plotyy命令來實(shí)現(xiàn)這一功能。單獨(dú)寫在兩個(gè)圖形上的情況首先,讓我們來看看如何將兩個(gè)
使用plotyy命令繪制雙y軸坐標(biāo)
在作圖時(shí),有時(shí)需要在同一張圖上展示兩個(gè)不同的y軸坐標(biāo)。幸運(yùn)的是,Matlab提供了plotyy命令來實(shí)現(xiàn)這一功能。
單獨(dú)寫在兩個(gè)圖形上的情況
首先,讓我們來看看如何將兩個(gè)數(shù)據(jù)分別繪制在兩個(gè)圖形上。假設(shè)我們有以下數(shù)據(jù):
x 0:0.01:20;
y1 200*exp(-0.05*x).*sin(x);
y2 0.8*exp(-0.5*x).*sin(10*x);
我們可以使用subplot函數(shù)將兩個(gè)圖形繪制在不同的子圖上:
subplot(1,2,1);
plot(x,y1);
subplot(1,2,2);
plot(x,y2);
在一個(gè)圖形上使用雙坐標(biāo)
如果我們想將兩個(gè)數(shù)據(jù)繪制在同一張圖上,可以使用plotyy函數(shù):
x 0:0.01:20;
y1 200*exp(-0.05*x).*sin(x);
y2 0.8*exp(-0.5*x).*sin(10*x);
figure;
plotyy(x,y1,x,y2);
這樣比將數(shù)據(jù)繪制在兩個(gè)圖形上要方便得多。
對不同的曲線進(jìn)行賦值
我們也可以通過下面的方式給不同的曲線進(jìn)行賦值:
figure;
[hAx,hLine1,hLine2] plotyy(x,y1,x,y2);
title('Multiple Decay Rates');
xlabel('Time (musec)');
ylabel(hAx(1),'Slow Decay');
ylabel(hAx(2),'Fast Decay');
其中,hAx(1)和hAx(2)分別代表第一個(gè)圖形和第二個(gè)圖形。
使用不同的線型畫不同的線
我們還可以使用不同的線型來畫不同的線:
[hAx,hLine1,hLine2] plotyy(x,y1,x,y2);
'--';
':';
你可以通過觀察第一條線和第二條線的區(qū)別來理解。
使用不同的繪制方式
當(dāng)然,兩條線也可以用不同的方式進(jìn)行繪制:
x 0:0.1:10;
y1 200*exp(-0.05*x).*sin(x);
y2 0.8*exp(-0.5*x).*sin(10*x);
figure;
plotyy(x,y1,x,y2,'plot','stem');
第一條線使用最普通的plot方式,而第二條線使用了棒狀圖(stem)的方式進(jìn)行繪制。
使用yyaxis命令
除了plotyy命令外,最近的Matlab版本還引入了yyaxis命令來實(shí)現(xiàn)相同的效果:
x linspace(15,30);
y sin(3*x);
yyaxis left;
plot(x,y);
z sin(3*x).*exp(0.5*x);
yyaxis right;
plot(x,z);
ylim([-150 150]);
使用yyaxis命令同樣可以達(dá)到plotyy的效果。最近的Matlab趨向于使用yyaxis取代plotyy命令。