美文网首页麻城经理
MATLAB基本2D作图(2)

MATLAB基本2D作图(2)

作者: 浪尖儿 | 来源:发表于2016-08-17 17:37 被阅读321次

    在同一个坐标系中画多个图

    至少有三种方法可以在同一个坐标系中画多幅图:

    1. 最简单的办法。

      使用hold命令让绘图操作保持在当前的坐标系中。在hold释放之前(使用hold off或者只使用hold),所有的绘图操作都会添加到当前的坐标系中;

    2. 使用plot绘图的时候传入多组参数。

      例如:plot(x1, y1, x2, y2, x3, y3, ...)将会绘制向量对(x1, y1),(x2, y2)等等。
      这种方法的优点:向量对可以有不同的长度,MATLAB自动地为每一对选择不同地颜色。
      如果你正在同一坐标系中绘制两幅图的话,plotyy是个有用的函数。它允许左右两侧y轴不同。例如:

           x=(0:pi/20:2*pi);  
           plotyy(x, sin(x), x, 10*cos(x)) 
      

      会得到以下结果:

      plotyy
    3. 使用plot(X,Y)

      不同的地方在于,X,Y可以都是矩阵或者有一个矩阵一个向量。下面要分几种情况:

      • 如果X或者Y其中一个是矩阵,一个是向量,矩阵的行或者列会和向量结合来绘图,每个都使用不同的颜色。使用矩阵的行还是列,取决于谁和向量的元素数量相同。如果是方阵的话,那就使用列。看下面的例子:

        matrix-xy

        由于X的行的数目和y的元素数目相等,那么使用X的每一列和y进行绘图。建议大家自己尝试一下。

        plot-mat-v
      • 如果X和Y是具有相同维数的矩阵,那么就是使用X的第i列与Y的第i列进行绘图,看下面的例子:

          X=rand(3,2);Y=rand(3,2);
          plot(X,Y,'om--')
        

        得到结果如下图:

        plot_mat_mat
      • 如果不指定X,只传入矩阵Y作为参数:plot(Y)。那么Y的每一列将会以元素所在行号为索引绘图。例如:

          Y=rand(3,2);plot(Y,'om--')  
        

        得到结果如下图:

        plot-y

    线风格、点标记和颜色

    通过给plot函数传递一个字符串参数来指定绘图中使用的线风格、点标记和颜色。例如:

    plot(x,y,'--')  
    表示画线的时候使用虚线;  
    plot(x,y,'o')  
    表示在数据点处画上圆圈,并且不用线来连接他们;  
    plot(x,sin(x),x,cos(x),'om--')
    表示以默认的风格绘制sin(x),用品红色虚线和圆圈绘制cos(x)。
    

    plot函数有很多其他的参数,help plot会告诉你更多的选项。

    plot_style

    坐标轴

    当你使用MATLAB画图的时候,它会自动的缩放坐标轴来适应数据的范围。可以这样指定坐标轴范围:

    axis([xmin, xmax, ymin, ymax])
    

    如果你只想指定最大值或者最小值其中之一,可以使用Inf或者-Inf让MATLAB对其他坐标轴自动缩放。
    使用axis auto可以返回到坐标轴自动缩放的状态。
    v = axis返回当前的坐标轴缩放向量v。
    axis manual使绘图保持当前的坐标轴缩放,后续的绘图使用同样的坐标轴。
    axis equal使x轴和y轴单位长度等长,这样画出来的圆形看起来使圆的。可以通过axis normal取消。
    axis on和axis off可以控制坐标轴和数值标记是否显示。

    在同一个窗口中画多幅图

    使用subplot函数在同一个窗口中绘制多幅图。subplot(m,n,p)把窗口分成m*n个坐标系的集合,并选择第p个坐标系作为当前绘图操作的坐标系。例如,下面的语句将会绘制4幅图:

    [x,y]=meshgrid(-3:0.3:3);
    z=x.*exp(-x.^2 - y.^2);
    subplot(2,2,1)
    mesh(z),title('subplot(2,2,1)')
    subplot(2,2,2)
    mesh(z),view(-37.5,70),title('subplot(2,2,2)')
    subplot(2,2,3)
    mesh(z),view(37.5,-10),title('subplot(2,2,3)')
    subplot(2,2,4)
    mesh(z),view(0,0),title('subplot(2,2,4)')
    

    绘图结果如下:

    subplot

    figure,clf和cla

    figure(h),传入一个整数h,创建一个新的窗口或者把窗口h作为当前窗口,接下来就绘制在当前窗口中,h称作窗口句柄。
    clf清除当前窗口,并且重置坐标系的所有属性,例如hold状态和axis状态。
    cla从当前坐标系中删除所有的图和文字,只留下x轴、y轴和它们的信息。

    相关文章

      网友评论

        本文标题:MATLAB基本2D作图(2)

        本文链接:https://www.haomeiwen.com/subject/howmsttx.html