MATLAB画三个曲线,MATLAB plotyyy 函数 三Y轴绘制曲线(ZT)

这个博客介绍了用于创建包含三个y轴的图形函数`plotyyy`。该函数扩展了`plotyy`,允许在同一图表中显示三条独立的数据线,并分别设置它们的y轴标签。示例代码展示了如何使用`plotyyy`绘制三条曲线,并设置了相应的y轴标签。作者为Denis Gilbert,适用于数据可视化和科学计算场景。
摘要由CSDN通过智能技术生成

function

[ax,hlines] = plotyyy(x1,y1,x2,y2,x3,y3,ylabels)

%PLOTYYY - Extends plotyy to include a third y-axis

%

%Syntax: [ax,hlines] = plotyyy(x1,y1,x2,y2,x3,y3,ylabels)

%

%Inputs: x1,y1 are the xdata and ydata for the first axes'

line

% x2,y2 are the xdata and ydata for the second axes' line

% x3,y3 are the xdata and ydata for the third axes' line

% ylabels is a 3x1 cell array containing the ylabel strings

%

%Outputs: ax

- 3x1 double array containing the axes' handles

% hlines - 3x1 double array containing the lines' handles

%

%Example:

%x=0:10;

%y1=x; y2=x.^2; y3=x.^3;

%ylabels{1}='First y-label';

%ylabels{2}='Second y-label';

%ylabels{3}='Third y-label';

%[ax,hlines] = plotyyy(x,y1,x,y2,x,y3,ylabels);

%legend(hlines, 'y = x','y = x^2','y = x^3',2)

%

%m-files required: none

%Author: Denis Gilbert, Ph.D., physical oceanography

%Maurice Lamontagne Institute

%email: %Web: http://www.qc.dfo-mpo.gc.ca/iml/

%April 2000; Last revision: 14-Nov-2001

if nargin==6

%Use empty

strings for the ylabels

ylabels{1}='

'; ylabels{2}=' '; ylabels{3}=' ';

elseif nargin > 7

error('Too

many input arguments')

elseif nargin < 6

error('Not

enough input arguments')

end

figure('units','normalized',...

'DefaultAxesXMinorTick','on','DefaultAxesYminorTick','on');

%Plot the first two lines with plotyy

[ax,hlines(1),hlines(2)] = plotyy(x1,y1,x2,y2);

cfig = get(gcf,'color');

pos = [0.1 0.1 0.7 0.8];

offset = pos(3)/5.5;

%Reduce width of the two axes generated by plotyy

pos(3) = pos(3) - offset/2;

set(ax,'position',pos);

pos3=[pos(1) pos(2) pos(3)+offset pos(4)];

limx1=get(ax(1),'xlim');

limx3=[limx1(1) limx1(1) +

1.2*(limx1(2)-limx1(1))];

%Bug fix 14 Nov-2001: the 1.2 scale factor in the line above

%was contributed by Mariano Garcia (BorgWarner Morse TEC Inc)

ax(3)=axes('Position',pos3,'box','off',...

'Color','none','XColor','k','YColor','r',...

'xtick',[],'xlim',limx3,'yaxislocation','right');

hlines(3) = line(x3,y3,'Color','r','Parent',ax(3));

limy3=get(ax(3),'YLim');

line([limx1(2) limx3(2)],[limy3(1) limy3(1)],...

'Color',cfig,'Parent',ax(3),'Clipping','off');

axes(ax(2))

%Label all three y-axes

set(get(ax(1),'ylabel'),'string',ylabels{1})

set(get(ax(2),'ylabel'),'string',ylabels{2})

set(get(ax(3),'ylabel'),'string',ylabels{3})

a4c26d1e5885305701be709a3d33442f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值