zoukankan      html  css  js  c++  java
  • 《MATLAB从入门到放弃》二维曲线和图形绘制基础(二):使用Help文档学习line、plot、plotyy、subplot、hold绘图函数

     目录:

     »  plot 最常用的二维曲线绘图函数

     >  帮助文档

     >  基本使用语法

     >  线条的样式、符号和颜色调整

     >  图形属性调整

     >  使用图形句柄进行设置

     »  line 点点连线

     »  subplot  子图绘制

     >  子图绘制

     >  子图句柄

     »  plotyy  双纵坐标绘图

     >  双纵坐标的绘图

     >  双纵坐标的句柄

     »  hold  图形叠绘


    写在前面 :   

    •  MATLAB中函数的学习,一定要学会使用软件自带的Help帮助文档 。 在命令模式下输入 help  函数名  。 可以打开该函数的help页,里面列出了该函数的语法、功能以及每种功能的实例。  包含了详细的函数参数和可控制变量 。可以说,帮助文档比任何一本书籍都要全面和权威 ,我看过好多书籍都是在乱说一气 ,不具有全面把我的特点 。  在本文在plot函数讲解的过程中阐述了帮助文档的使用方法
    •  图形中的句柄的概念请看http://www.cnblogs.com/zyuqiang/p/7596433.html

    plot   最常用的二维曲线绘图函数

    帮助文档

       命令模式下:   help plot-----> 打开plot的参考页。

    在参考页中详细讲述该函数的所有语法,每个语法的功能描述,每个语法列举出的一个例子,语法中可以选择的所有参数等等 。 

     

    基本使用语法

    plot(x)
    Y是向量
    横坐标默认1,2,3...size(Y )
    对应y向量的值
    x =
        43    91    18    10     1     8
    plot(x)
     
    Y是矩阵
    横坐标默认1,2,3....size(Y的行数)
    对应每行的列
     
    y=[1,2,3;4,5,6]
    plot(y);
     
    plot(x,y)
    x和y都是向量
    必须具有相等的长度
    绘图一个y对应一个x
     
    x=1:5;
    y=6:10;        
    plot(x,y);   
     

     
    x和y都是矩阵
    必须具有相等的大小
    绘图x矩阵的元素对于y矩阵的元素
     
    x=[0,2,10;1,2,3];
    y=[1,2,3;4,5,6];
    plot(x,y);
     
     
    x和y其中一个是向量,另一个是矩阵
    矩阵的维度之一必须等于向量的长度
    1 . 矩阵行数 = 向量长度
    2 . 矩阵列数 = 向量长度
     
    x=1:2
    y=[1,6,3;9,5,11]
    plot(x,y);
     
    x和y之一是标量,另一个是标量/向量
    绘制离散的点
     
    x=3
    y=[1,6,3]
    plot(x,y,'o');%o是在指定坐标处画一个原点,方便显示
     
     x和y之一是向量,另一个是函数  
    x=0:0.1:2*3.14 ;
    y=sin(x);
    plot(x,y);
     

     

    plot(x,y,x1,y1,x2,y2.......)
    x=0:0.1:2*3.14 ;
    y=sin(x);
    x1=0:0.1:2*3.14;
    y1=cos(x1);
    plot(x,y,x1,y1);

    线条的样式、符号和颜色调整

    语法
    • plot(x,y,lineSpec)
    • plot(y,lineSpec)
    • plot(x1,y1,lineSpec1,x2,y2,lineSpec2,.......)
        lineSpec 包含设置线条样式(line-style),标记符号(marker)和颜色(color) , 表示对plot绘制图形的样式、标记符合和颜色进行调整  。 三个属性没有顺序,如果缺少一个,则表示没有
       matlab文档中提供了所有的样式颜色符号表,help plot 可以查看参考页的input Arguments(输入参数)中的LineSpec,可以查看line-style、marker、color的所有参数 。

     

    x=0:0.1:2*3.14 ;
    y=sin(x);
    plot(x,y,'-.or'); % 三个属性都放在一起,没有前后顺序,放在单引号中
    %三个只要有一个不写,则表示没有
    plot(x,y,'or');
    
    %   -.:表示样式
    %   o :表示符号为圆圈
    %   r :表示颜色为red
    

    图形属性调整

    语法:
    •    plot(x,y,Name1,Value1,Name2,Value2........)
    •    plot(y,Name1,Value1,Name2,Value2........)
    •    plot(x1,y1,x2,y2,.......,Name1,Value1,Name2,Value2........) 
    这种语法,使用的是键值对的形式对图形的各个属性进行调整 。
    图形的属性也包括了对线条的调整,所以,用这种键值对的方法调整线条也能达到上述lineSpec的效果 。
    matlab文档中提供了所有的属性键值对,help plot 可以查看参考页的Name-Value Pair Arguments,可以查看包括color、lineStyl等等所有的属性 。

     

    属性 介绍 代码
    Color 颜色
    x=0:0.1:2*3.14 ;
    y=sin(x);
    plot(x,y,
      'Color','r',
      'LineStyle','-.',
      'LineWidth',5.9
    );
     
     
    LineStyle 线条样式
    LineWidth 线条宽度,数字不加引号
    Marker 线条标记符号
    x=0:0.1:2*3.14 ;
    y=sin(x);
    plot(x,y,
      'Marker','x'
    );
    MarkerIndices 在某个点显示标记符号,需要配合Marker
    x=0:0.1:2*3.14 ;
    y=sin(x);
    plot(x,y,
     'Marker','o',
     'MarkerIndices',[1,5,20]
    );
    MarkerEdgeColor 标记符号的颜色
    x=0:0.1:2*3.14 ;
    y=sin(x);
    plot(x,y,
    'Marker','o',
    'MarkerIndices',[1,5,20]
    );
    MarkerFaceColore 标记符号的颜色
    x=0:0.1:2*3.14 ;
    y=sin(x);
    plot(x,y,
    'Marker','o',
    'MarkerFaceColor','red'
    );
    MarkerSize 标记符号的大小
    x=0:0.1:2*3.14 ;
    y=sin(x);
    plot(x,y,
     'Marker','o',
     'MarkerSize',11
    );
    DatetimeTickFormat    
    DurationTickFormat    

     

    使用图像句柄进行设置

      plot函数返回的句柄只有一个
    语法 :  
    •   h = plot()
     
    h= plot(Y)
    h = plot(x,y)
    x = [0:0.1:2*pi];
    y1 = sin(x);
    y2 = cos(x);
    h1 = plot(x,y1);
    figure ; % 再新建一个图形
    h2 = plot(x,y2);
    h1.LineWidth = 10;
    h2.Marker = '*';
    h = plot(x,y,x1,y1.....)
    x = [0:0.1:2*pi];
    y1 = sin(x);
    y2 = cos(x);
    p = plot(x,y1,x,y2); 
    p(1).LineWidth = 2; %第一个图
    p(2).Marker = '*';  %第二个图 
     
     

    line   点点连线

     line函数是点点连线的函数,用的不是很多。在帮助文档中的语法有如下:

    • line
    • line(X,Y)
    • line(X,Y,Z)
    • line(X,Y,Z,'PropertyName',propertyvalue,...)
    • line('XData',x,'YData',y,'ZData',z,...)
    • line(ax,...)
    • h = line(...)

    各个语法的用法与plot函数类似,这里不做详细累述,可以根据plot函数的学习去看帮助文档

    简单用法如下:

    x=1:10
    x =
         1     2     3     4     5     6     7     8     9    10
    >> y=sin(x)
    y =
        0.8415    0.9093    0.1411   -0.7568   -0.9589   -0.2794    0.6570    0.9894    0.4121   -0.5440
    line(x,y)
    

    subplot    子图绘制

    子图绘制 

    子图的意思是一个图形窗口可以有多个图形,每个图形都是一个子图

    帮助文档中列出的语法如下;

    • subplot(m,n,p)
    • subplot(m,n,p,'replace')
    • subplot(m,n,p,'align')
    • subplot('Position',positionVector)
    • subplot(m,n,p,ax)
    • subplot(___,Name,Value)
    • h = subplot(___)
    • subplot(h)

    subplot定义子图格局,以及这是第几副子图,plot函数用来绘图 。  其中m: 行数, n: 列数 , i : 第几个图

    只列举子图中常用的 subplot(m,n,p)的使用,其他用语法的功能和使用请详细看帮助文档 

    x=0:0.1:2*3.14 ;
    y1=sin(x);
    y2=cos(x);
    y3=10*x;
    y4=tan(x);
    subplot(2,2,1); %第一幅子图
    plot(x,y1);
    subplot(2,2,2);%第二幅子图
    plot(x,y2);
    subplot(2,2,3);%第三幅子图
    plot(x,y3);
    subplot(2,2,4);%第四幅子图
    plot(x,y4);
    

     子图句柄

     从列举出的语法来看,子图也有句柄,使用如下:

    x = 0:0.01:20;
    y1 = 200*exp(-0.05*x).*sin(x);
    y2 = 0.8*exp(-0.5*x).*sin(10*x);
    h1 = subplot(1,2,1);
    h2 = subplot(1,2,2);
    plot(h1,x,y1);
    plot(h2,x,y2);
    

    plotyy     双纵坐标绘图

     双纵坐标的绘图

    双纵坐标的意思是 两个不同函数曲线共用一个横坐标,但是左右纵坐标是不同的 。

    帮助文档中的语法如下 :

    • plotyy(X1,Y1,X2,Y2)
    • plotyy(X1,Y1,X2,Y2,function)
    • plotyy(X1,Y1,X2,Y2,'function1','function2')
    • plotyy(AX1,___)
    • [AX,H1,H2] = plotyy(___)

    只列举最常用的 plotyy(X1,Y1,X2,Y2) 的使用,(其他语法的使用去看plotyy的帮助文档):

    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)
    

    双纵坐标的句柄

     从列举出的语法来看,plotyy函数也是有句柄的,使用如下 :

    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); 
    %对两个图形进行设置
    h1.LineWidth = 10 ;
    h2.Marker = '*';
    %ax的设置还没有学到,在将来会讲解
    

    hold       图形叠绘

     图形叠绘的意思是在一个图形的基础上再绘制一个图形

    帮助文档中给出的语法如下 :

    • hold on
    • hold off
    • hold all
    • hold
    • hold(ax,'on')
    • hold(ax,'off')
    • hold(ax)
    x=0:0.1:2*3.14 ;
    y1=sin(x);
    y2=cos(x);
    y3=10*x;
    subplot(1,2,1);  %第一幅子图
    plot(x,y1);
    hold on ;    %在plot(x,y1)图形的基础上叠加后的图形, 不加on也可以。 
    plot(x,y2);  
    hold off ;   %关闭图形叠加
    subplot(1,2,2);  %第二幅子图
    plot(x,y3);
    

  • 相关阅读:
    【题解】CodeChef
    【题解】AT1984 Wide Swap(拓扑排序)
    【题解】CF917D Stranger Trees(prufer序列+二项式反演)
    【题解】UVA
    【题解】P3980 [NOI2008]志愿者招募(费用流求线性规划)
    【题解】AT2064 Many Easy Problems(转换+NTT)
    【题解】AT1983 BBQ Hard (格路)
    【总结】不同卷积如何来搞
    【瞎讲】 Cayley-Hamilton 常系数齐次线性递推式第n项的快速计算 (m=1e5,n=1e18)
    计算几何小结计算几何小结
  • 原文地址:https://www.cnblogs.com/zyuqiang/p/7597694.html
Copyright © 2011-2022 走看看