Matlab绘制双y轴曲线
使用plotyy命令绘制双y轴坐标
在作图时,有时需要在同一张图上展示两个不同的y轴坐标。幸运的是,Matlab提供了plotyy命令来实现这一功能。
单独写在两个图形上的情况
首先,让我们来看看如何将两个数据分别绘制在两个图形上。假设我们有以下数据:
x 0:0.01:20;
y1 200*exp(-0.05*x).*sin(x);
y2 0.8*exp(-0.5*x).*sin(10*x);
我们可以使用subplot函数将两个图形绘制在不同的子图上:
subplot(1,2,1);
plot(x,y1);
subplot(1,2,2);
plot(x,y2);
在一个图形上使用双坐标
如果我们想将两个数据绘制在同一张图上,可以使用plotyy函数:
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);
这样比将数据绘制在两个图形上要方便得多。
对不同的曲线进行赋值
我们也可以通过下面的方式给不同的曲线进行赋值:
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)分别代表第一个图形和第二个图形。
使用不同的线型画不同的线
我们还可以使用不同的线型来画不同的线:
[hAx,hLine1,hLine2] plotyy(x,y1,x,y2);
'--';
':';
你可以通过观察第一条线和第二条线的区别来理解。
使用不同的绘制方式
当然,两条线也可以用不同的方式进行绘制:
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)的方式进行绘制。
使用yyaxis命令
除了plotyy命令外,最近的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]);
使用yyaxis命令同样可以达到plotyy的效果。最近的Matlab趋向于使用yyaxis取代plotyy命令。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。