Matlab绘制双y轴曲线
1、首先来一列数据,如果是单独写在两个图形上,可以这样:
x = 0:0.01:20;y1 = 200*exp(-0.05*x).*sin(x);y2 = 0.8*exp(-0.5*x).*sin(10*x);
subplot(1,2,1);
plot(x,y1);
subplot(1,2,2);
plot(x,y2);
2、如果要写在一个图形上,使用双坐标:
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);
这比画在一个图形上要方便多了。
3、可以通过如下方式对不同的曲线进行赋值:
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)分别代表了第一个图形和第二个图形。
4、还可以使用不同的线型画不同的线:
[hAx,hLine1,hLine2] = plotyy(x,y1,x,y2);
hLine1.LineStyle = '--';
hLine2.LineStyle = ':';
可以看看第一条线和第二条线的区别。
5、当然两条线也可以用不同的方式进行绘制:
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。
6、当然,目前的matlab还支持使用yyaxis命令:
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]);
使用该命令也可以达到plotyy的效果。最近的matlab有使用yyaxis取代plotyy的趋势。