2016 - 2024

感恩一路有你

Matlab绘制双y轴曲线

浏览量:3732 时间:2024-08-11 12:09:40 作者:采采

使用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命令。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。