MATLAB中使用plotyy绘制双纵坐标图及坐标轴设置

关于plotyy绘图的用法网上有很多,但是对于纵坐标间隔不同时很难找到合适的方法,这里主要参考了MATLAB论坛中的内容http://www.ilovematlab.cn/thread-473107-1-1.html 

其思想就是把原坐标轴中的box属性关闭,重新再画一个坐标轴。

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),'ylim',[-300 300]);   % 坐标轴范围
set(AX(1),'ytick',[-300:100:300]) %坐标轴刻度
set(AX(1),'yticklabel',[-300:100:300])
set(AX(2),'ylim',[-1 1]);
set(AX(2),'ytick',[-1:.5:1])
set(AX(2),'yticklabel',[-1:.5:1])
% 以下为核心部分
set(AX(1),'box','off')
set(AX(2),'box','off')
% create a new axes on top of old ones
new_AX = axes('Position',get(AX(1),'Position'),'XLim',get(AX(1),'XLim'),'YTick',[]);
set(new_AX,'box', 'on')
% reorder things to make y-axes and box visible at the same time
uistack(AX(1),'top')
uistack(AX(2),'top')
set(AX(1),'Color','None')

MATLAB中使用plotyy绘制双纵坐标图及坐标轴设置_第1张图片

 

 

 

你可能感兴趣的:(MATLAB)