广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    Matlab绘制双x轴-双y轴图形攻略

    来源:网络收集  点击:  时间:2024-09-08
    【导读】:
    我们在sci论文的写作过程中通常遇到双y轴数据作图的问题,这篇文档将通过多个程序算例详细介绍Matlab绘制双y轴图形的方法工具/原料morematlab方法1:plotyy双y轴1/3分步阅读

    plotyy(X1,Y1,X2,Y2)

    在左侧绘制X1与Y1之间的关系,左侧标记y轴;

    右在侧绘制X2与Y2之间的关系,右侧标记y轴。

    For example,

    plotyy(x1,y1,x2,y2,@loglog) % function handle

    plotyy(x1,y1,x2,y2,loglog) % string

    plotyy(X1,Y1,X2,Y2,function1,function2)使用函数1(X1,Y1)绘制左轴数据和函数2(X2,Y2)绘制右轴数据

    2/3

    这个例子使用绘图作为绘图函数来绘制两个数学函数。 即使数据的相对值差别很大,两个y轴也可以在一个图表上显示两组数据。

    figure

    x = 0:0.01:20;

    y1 = 200*exp(-0.05*x).*sin(x);

    y2 = 0.8*exp(-0.5*x).*sin(10*x);

    = plotyy(x,y1,x,y2,plot);

    set(get(AX(1),Ylabel),String,Slow Decay)

    set(get(AX(2),Ylabel),String,Fast Decay)

    xlabel(Time (\musec))

    title(Multiple Decay Rates)

    set(H1,LineStyle,--)

    set(H2,LineStyle,:)

    3/3

    这个例子使用绘图作为绘图函数来绘制两个数学函数。 即使数据的相对值差别很大,两个y轴也可以在一个图表上显示两组数据。

    % 程序2:x=linspace(0,2*pi,40);=plotyy(x,sin(x)+cos(x),x,exp(x));

    set(h1,linestyle,-)set(h2,linestyle,-)set(h1,marker,o)set(h2,marker,+)hold onx=linspace(0,2*pi,40);hh=line(x,cos(x));set(hh,linestyle,-)set(hh,marker,s)

    hold onhhf=line(x,sin(x));set(hhf,color,r)set(hhf,linestyle,-)set(hhf,marker,*)legend(,sin(x)+cos(x),exp(x),cos(x),sin(x),0);

    方法2:两周完全独立的双轴图1/1

    两个x轴两个y轴

    这个例子创建一个图形来显示两组独立的数据,分别使用底部和左侧作为一个的x轴和y轴,顶部和右侧作为另一个的x轴和y轴。

    x1 = ;

    y1 = 4.*cos(x1)./(x1+2);

    x2 = ;

    y2 = x2.^2./x2.^3;

    使用低级线和轴例程可以轻松地叠加对象。 绘制第一个数据,使线的颜色和相应的x轴和y轴相同,从而更容易地将它们关联起来

    hl1 = line(x1,y1,Color,r);

    ax1 = gca;

    set(ax1,XColor,r,YColor,r)

    接下来,在与第一个位置相同的位置创建另一个轴,将x轴置于顶部,将y轴置于右侧。 将“轴颜色”设置为“无”,以允许第一个轴可见,并对x轴和y轴进行颜色编码以匹配数据。

    ax2 = axes(Position,get(ax1,Position),...

    XAxisLocation,top,...

    YAxisLocation,right,...

    Color,none,...

    XColor,k,YColor,k);

    用与x轴和y轴相同的颜色绘制第二组数据。

    hl2 = line(x2,y2,Color,k,Parent,ax2);

    完整程序如下:

    x1 = ;

    y1 = 4.*cos(x1)./(x1+2);

    x2 = ;

    y2 = x2.^2./x2.^3;

    hl1 = line(x1,y1,Color,r);

    ax1 = gca;

    set(ax1,XColor,r,YColor,r)

    ax2 = axes(Position,get(ax1,Position),...

    XAxisLocation,top,...

    YAxisLocation,right,...

    Color,none,...

    XColor,k,YColor,k);

    hl2 = line(x2,y2,Color,k,Parent,ax2);

    所得图形结果如右图所示:

    方法3:x轴刻度相同的双轴图1/1

    由于这两个轴是完全独立的,因此MATLAB软件根据每个绘制的数据确定刻度标记位置。 网格线不太可能重合。 这会产生一个令人困惑的图表,即使这两个网格用不同的颜色绘制。 但是,如果您手动指定刻度线位置,则可以使网格重合

    完整程序如下:

    x1 = ;

    y1 = 4.*cos(x1)./(x1+2);

    x2 = ;

    y2 = x2.^2./x2.^3;

    hl1 = line(x1,y1,Color,r);

    ax1 = gca;

    set(ax1,XColor,r,YColor,r)

    ax2 = axes(Position,get(ax1,Position),...

    XAxisLocation,top,...

    YAxisLocation,right,...

    Color,none,...

    XColor,k,YColor,k);

    hl2 = line(x2,y2,Color,k,Parent,ax2);

    %%手动指定刻度线位置

    xlimits = get(ax1,XLim);

    ylimits = get(ax1,YLim);

    xinc = (xlimits(2)-xlimits(1))/5;

    yinc = (ylimits(2)-ylimits(1))/5;

    set(ax1,XTick,,...

    YTick,)

    所得图形结果如右图所示:

    注意事项

    欢迎提问,有问必答, 如果对您帮助,请在下面投票,您的认可是我不断分享的动力!

    MATLABPLOTYY双Y轴
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_1201910.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-07 02:06:05  耗时:0.028
    0.028s