zoukankan      html  css  js  c++  java
  • Matlab中plot函数参数解析

    功能

    二维曲线绘图

    语法

    plot(Y)
    plot(X1,Y1,...)
    plot(X1,Y1,LineSpec,...)
    plot(...,'PropertyName',PropertyValue,...)
    plot(axes_handle,...)
    h = plot(...)
    hlines = plot('v6',...)
    

     

    描述

    plot(Y)如果Y是m×n的数组,以1:m为X横坐标,Y中的每一列元素为Y坐标,绘制n条曲线;如果Y是n×1或者1×n的向量,则以1:n为横坐标,Y为坐标表绘制1条曲线;如果Y是复数,则plot(Y)等效于plot(real(Y),imag(Y));其它使用情况下,忽略坐标数据中的虚部。

    plot(X1,Y1,...)如果X和Y都是数组,按列取坐标数据绘图,此时它们必须具有相同的尺寸;如果X和Y其中一个是向量另一个为数组,X和Y中尺寸相等的方向对应绘制多条曲线;如果X和Y其中一个是标量另一个为向量,那么将绘制垂直X或者Y轴离散的点。

    X

    Y

     

    备注

    m×n

    m×n

    按列取坐标数据绘制n条曲线

    X和Y必须具有相同的尺寸

    1×n或n×1

    m×n或n×m

    自动匹配尺寸相同方向绘制m条曲线

    任意四种组合,效果一样

    m×n或n×m

    1×n或n×1

    同上

    同上

    1×1

    1×n或n×1

    绘制垂直X轴离散点

    Y可以任意向量

    1×n或n×1

    1×1

    绘制垂直Y轴离散点

    X可以任意向量

    plot(X1,Y1,LineSpec,...)通过参数LineSpec指定曲线的曲线属性,它包括线型、标记符和颜色。plot函数支持同时绘制任意组图形

    plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2,...)

    此时完全等效于

    plot(X1,Y1,LineSpec1,...)
    
    hlod all
    
    plot(X2,Y2,LineSpec2,...) 
    

    MATLAB中提供的线型属性有:

    线型

    说明

    标记符

    说明

    颜色

    说明

    -

    实线(默认)

    +

    加号符

    r

    红色

    --

    双划线

    o

    空心圆

    g

    绿色

    :

    虚线

    *

    星号

    b

    蓝色

    :.

    点划线

    .

    实心圆

    c

    青绿色

     

     

    x

    叉号符

    m

    洋红色

     

     

    s

    正方形

    y

    黄色

     

     

    d

    菱形

    k

    黑色

     

     

    ^

    上三角形

    w

    白色

     

     

    v

    下三角形

     

     

     

     

    右三角形

     

     

     

     

    左三角形

     

     

     

     

    p

    五角星

     

     

     

     

    h

    六边形

     

     

    需要说明的是,LineSpec中设置曲线线型、标识符和颜色三项属性时,控制符的顺序不受限制并可以省略或者部分省略。也就是说'r-.*'、'-.r*'、'*-.r'等形式是等效的,都表示使用红色点划线连接各个节点,各节点使用“*”标识。

    plot(...,'PropertyName',PropertyValue,...)设置由plot创建的所有曲线句柄对象的属性,Line对象属性和属性值参见附录,具体设置参考下面的实例,当然可以使用set/get进行设置。
    
    plot(axes_handle,...)指定坐标系,也就是在axes_handle坐标系中绘图,在没有指定时默认为gca。
    
    

      

    h = plot(...)返回由plot创建的所有曲线句柄对象的句柄。每条曲线对应一个句柄,如果有n条曲线,则h为n×1的数组。

    注意

    在同时绘制多条曲线时,如果没有指定曲线属性,plot按顺序循环使用当前坐标系中ColorOrder和LineStyleOrder两个属性。

    默认情况,MATLAB在每次调用plot函数时将ColorOrder和LineStyleOrder自动重置为DefaultAxesColorOrder和DefaultAxesLineStyleOrder。Default**属性我们可以自定义,有效期至MATLAB关闭,Matlab下次启动时将Default**属性重置为厂家设置(Factory)

    set(0,'DefaultAxesColorOrder',’r|g|b|k’,...
          'DefaultAxesLineStyleOrder','-|-.|--|:')
     
    

      

    使用hold all命令可以阻止调用plot函数时自动重置ColorOrder和LineStyleOrder属性,而是循环使用。注意hold on只是使多次绘制的图形叠加(相当于NextPlot),但不能阻止属性重置。

    另外我们可以通过下面四个属性设置标识符的颜色和大小

    LineWidth——指定线宽
    
    MarkerEdgeColor——指定标识符的边缘颜色
    
    MarkerFaceColor——指定标识符填充颜色
    
    MarkerSize——指定标识符的大小
    

      

    注意上面四个属性是针对当前坐标系中所有曲线的

    实例

    % by dynamic
    
    % see also http://www.matlabsky.com
    
    % 2009.8.20
    
    %
    
    X=1:10;
    
    % 两个都是数组,必须具有相同的尺寸
    
    X1=[X;X;X]';%10×3
    
    Y1=rand(10,3)+1;%10×3
    
    % 其中一个为向量,另一个为数组,自动匹配尺寸相等方向
    
    X2=1:0.1:10;%1×91
    
    Y2=[sin(X2);cos(X2)]';%91×2
    
    % 其中一个是标量,另一为矢量,绘制垂直坐标轴的离散点
    
    X3=1:10;
    
    Y3=-0.5;
    
    fh=figure('numbertitle','off','name','PLOT Usability Demo');%创建figure对象
    
    ah=axes;%创建axes对象
    
    h=plot(...%返回所有曲线句柄
    
        ah,...%指定坐标系,可以省略,此时默认gca
    
        X1,Y1,...%坐标数据   
    
        '-.^',...%曲线属性,可以省略或部分省略,此时自动选择
    
        X2,Y2,...
    
        'm-',...
    
        X3,Y3,...
    
        'o',...%注意此组数据设置线型和颜色无效,因为默认绘制离散点
    
        'LineWidth',2,...%线宽
    
        'MarkerEdgeColor','k',...%标识符边缘颜色
    
        'MarkerFaceColor','r',...%标识符填充颜色
    
        'MarkerSize',8)%标识符大小
    
     
    

      

     

    subplot函数解析: 

    subplot是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果第一个数字是2就是表示2行图。p是指你现在要把曲线画到figure中哪个图上,最后一个如果是1表示是从左到右第一个位置。下面是这个例子,可加深理解:

    x1=[1 2 3];x2=x1;x3=x2;x4=x1;
    y1=[2 4 6];y2=2*y1;y3=3*y1;y4=4*y1;
    subplot(2,2,1)
    plot(x1,y1);
    axis([0,20,0,20])
    subplot(2,2,2)
    plot(x2,y2);
      axis([0,20,0,20])
    subplot(2,2,3)
    plot(x3,y3)
      axis([0,20,0,20])
      subplot(2,2,4)
    plot(x4,y4)
    axis([0,20,0,20])

    结果为:

  • 相关阅读:
    Fizz Buzz 问题
    旋转字符串
    合并排序数组
    尾部的零
    A + B 问题
    CentOS6.x安装RabbitMQ
    MySql游标
    MySql存储过程
    找出n个自然数(1,2,3,……,n)中取r个数的组合
    正则表达式
  • 原文地址:https://www.cnblogs.com/haore147/p/3633017.html
Copyright © 2011-2022 走看看