资源描述:
《matlab plotyy画双纵坐标图实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Matlabplotyy画双纵坐标图实例x=0:0.01:20;y1=200*exp(-0.05*x).*sin(x);y2=0.8*exp(-0.5*x).*sin(10*x);[AX,H1,H2]=plotyy(x,y1,x,y2,'plot');set(AX(1),'XColor','k','YColor','b');set(AX(2),'XColor','k','YColor','r');HH1=get(AX(1),'Ylabel');set(HH1,'String','LeftY-axis');set(HH1,'color','b');H
2、H2=get(AX(2),'Ylabel');set(HH2,'String','RightY-axis');set(HH2,'color','r');set(H1,'LineStyle','-');set(H1,'color','b');set(H2,'LineStyle',':');set(H2,'color','r');legend([H1,H2],{'y1=200*exp(-0.05*x).*sin(x)';'y2=0.8*exp(-0.5*x).*sin(10*x)'});xlabel('Zeroto20musec.');title('
3、Labelingplotyy');Q:右边用蓝色圈起来的tick能去掉吗?由于用plotyy画图,为了使图尽量地显示出来,用了set(AX(1),'YLimMode','auto'),但这样可能会导致左边AX(1)和右边AX(2)的tick的间距不一样,影响美观。或者说能不能使plotyy画出的图两边的tick间距是一样的,这样在图形右边的tick就会重合在一起.A:如果只是想让plotyy的图美一些,可以使用其如下形式的调用方式:[AX,H1,H2]=plotyy(...)其中AX(2)就是右边Axes对象的句柄,拿到它以后就可以set或者get
4、来处理了,也可以把其ytick关掉。A:也可以用line语句来画,就没有左边和上边的线了。Q:plotyy(X1,Y1,X2,Y2,FUN1,FUN2),FUN1和FUN2应该怎么写?A:这两个FUN代表plotyy不一定要用两个plot,比如下面的例子,一条曲线用plot,一条用semilogyx1=1:0.1:100;x2=x1;y1=x1;y2=x2.^3;plotyy(x1,y1,x2,y2,@plot,@semilogy)来源:http://hi.baidu.com/wang_pw/blog/item/ede4c1fd6e51773d5c
5、6008f2.html~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MATLAB画双纵坐标 具有两个纵坐标标度的图形在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。调用格式为:plotyy(x1,y1,x2,y2)其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。双y轴坐标可以用plotyy(x,
6、y1,x,y2)来实现双x坐标可以用set(gca,'xaxislocation','bottom','xticklabel',{'0','1','2','3','4'})(假设x轴的标注为1,2,3,4)set(gca,'xaxislocation','top','xticklabel',{'0','1','2','3','4'})进行相应的设置【*例10.7.3-1】制作一个双坐标系用来表现高压和低温两个不同量的过渡过程。tp=(0:100)/100*5;yp=8+4*(1-exp(-0.8*tp).*cos(3*tp));%压力数据tt=(0
7、:500)/500*40;yt=120+40*(1-exp(-0.05*tt).*cos(tt));%温度数据%产生双坐标系图形clfreset,h_ap=axes('Position',[0.13,0.13,0.7,0.75]);%<4>set(h_ap,'Xcolor','b','Ycolor','b','Xlim',[0,5],'Ylim',[0,15]);nx=10;ny=6;%<6>pxtick=0:((5-0)/nx):5;pytick=0:((15-0)/ny):15;%<7>set(h_ap,'Xtick',pxtick,'Ytic
8、k',pytick,'Xgrid','on','Ygrid','on')h_linet=line(tp,yp,'Color