001 MATLAB-plotyy-函数详解

引言:

  • 在梳理数据,或者写论文的时候往往需要画出两个纵坐标不同的图,以显现两组数据的不同变化,在这种情况下,一般两组数据的横坐标均是相同的,但是纵坐标确实不是一个数量级的,所以为了更好的表现两组数据的变化趋势,需要用到plotyy函数绘制双纵坐标的二维图

1. 定义


plotyy是MAT LAB函数,用来绘制双纵坐标图。函数的返回值是,左右纵坐标轴和两条曲线的句柄。

2. 调用格式


1. plotyy(X1,Y1,X2,Y2)

以左、右不同纵轴绘制X1-Y1、X2-Y2两条曲线。

2. plotyy(X1,Y1,X2,Y2,FUN1)

以左、右不同纵轴把X1-Y1、X2-Y2两条曲线绘制成FUN1指定形式的两条曲线。

3. plotyy(X1,Y1,X2,Y2,FUN1,FUN2)

以左、右不同纵轴把X1-Y1、X2-Y2两条曲线绘制成FUN1、FUN2指定的不同形式的两条曲线。其中fun的绘制方式包括plot,semilogx,semilogy,loglog等。

4. [AX,H1,H2]=plotyy(…)

返回AX中创建的两个坐标轴的句柄以及H1和H2中每个图形绘图对象的句柄。AX(1)为左侧轴,AX(2)为右侧轴。

注意:

  • AX返回的是两个坐标轴的句柄,而H1和H2则是表示的每个图像的句柄。
  • 左纵轴用于X1-Y1数据对,右纵轴用于X2-Y2数据对。
  • 轴的范围、刻度都自动产生。如果要人工设置,必须使用axis函数。

3. 设置属性


3.1 设置坐标轴刻度

设置双y轴的刻度,使用以下函数:

[AX,h1line1,hline2]=plotyy(x1,y1,x2,y2);

%得到两个y轴的句柄AX(1)AX(2)

set(AX(2),'ytick',[0:20:500]);

%设置右y轴的刻度

set(gca,'xtick',[0:15:100]);  %设置x轴的刻度为0:15:100

set(gca,'ytick',[0:20:350]); %设置左y轴的刻度为0:20:350

3.2 设置轴的标签

先提取出轴的标签的句柄,然后再用set()函数设置

figure;

t=0:0.1:9*pi;

[AX,hline1,hline2]=plotyy(t,sin(t),t,exp(t));

d1=get(AX(1),'ylabel');%取出ylabel的句柄

set(d1,'string','yayacpf');%设置ylabel的值

set(get(H(2),'ylabel'),'string','bbs from hit','fontsize',10);

3.3 设置线型

取出曲线句柄,使用set函数对曲线进行设置

t=0:0.1:9;

[AX,hline1,hliine2]=plotyy(t,sin(t),t,cos(t));

set(hline1,'linestyle','-','marker','o','color','r');

set(hline2,'linestyle',':','marker','x','color','b');

3.5 设置图例

利用lengend()函数即可对任意图进行添加图例

x=linspace(0,2*pi,50);       

%linspace(x1,x2,N), linspace是Matlab中的均分计算指令,
用于产生x1,x2之间的N点行线性的矢量。
其中x1、x2、N分别为起始值、终止值、元素个数。若默认N,默认点数为100[ax,h1,h2]=plotyy(x,sin(x)+cos(x),x,exp(x));

set(h1,'linestyle','-')

set(h2,'linestyle','-')

set(h1,'marker','o')

set(h2,'marker','+')

%以上设置好两条曲线的属性

hold on

x=linspace(0,2*pi,50);

hh=line(x,cos(x));

set(hh,'linestyle','-')

set(hh,'marker','s')

hold on

hhf=line(x,sin(x));

set(hhf,'color','r')

set(hhf,'linestyle','-')

set(hhf,'marker','*')

legend([h1,h2,hh,hhf],'sin(x)+cos(x)','exp(x)','cos(x)','sin(x)');
%加注图例

4. Example


x=0:0.1*pi:2*pi; y=sin(x); z=exp(x);

plotyy(x,y,x,z,'plot','semilogy');

x=0:0.1*pi:2*pi; y=sin(x); z=exp(x);

plotyy(x,y,x,z,'plot','semilogy');

5.引用文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值