• matlab绘图方法[z]


    基本xy平面绘图命令

    MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表(Scientific visualization)。本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制、列印及存档。

    plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线

    close all;
    x=linspace(0, 2*pi, 100); % 100个点的x座标
    y=sin(x); % 对应的y座标
    plot(x,y);

    ====================================================
    小整理:MATLAB基本绘图函数
    plot: x轴和y轴均为线性刻度(Linear scale)
    loglog: x轴和y轴均为对数刻度(Logarithmic scale)
    semilogx: x轴为对数刻度,y轴为线性刻度
    semilogy: x轴为线性刻度,y轴为对数刻度
    ====================================================
    若要画出多条曲线,只需将座标对依次放入plot函数即可:
    plot(x, sin(x), x, cos(x));
    若要改变颜色,在座标对後面加上相关字串即可:
    plot(x, sin(x), 'c', x, cos(x), 'g');
    若要同时改变颜色及图线型态(Line style),也是在座标对後面加上相关字串即可:
    plot(x, sin(x), 'co', x, cos(x), 'g*');
    ====================================================

    小整理:plot绘图函数的叁数

    字元  颜色  字元  图线型态
      y   黄色   .      点
      k   黑色   o      圆
      w   白色   x      x
      b   蓝色   +      +
      g   绿色   *      *
      r   红色   -     实线
      c  亮青色  :     点线
      m  锰紫色  -.   点虚线
                --    虚线

    ====================================================
    图形完成後,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围:

    axis([0, 6, -1.2, 1.2]);

    此外,MATLAB也可对图形加上各种注解与处理:

    xlabel('Input Value'); % x轴注解
    ylabel('Function Value'); % y轴注解
    title('Two Trigonometric Functions'); % 图形标题
    legend('y = sin(x)','y = cos(x)'); % 图形注解
    grid on; % 显示格线

    我们可用subplot来同时画出数个小图形於同一个视窗之中:
    subplot(2,2,1); plot(x, sin(x));
    subplot(2,2,2); plot(x, cos(x));
    subplot(2,2,3); plot(x, sinh(x));
    subplot(2,2,4); plot(x, cosh(x));

    MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。
    ====================================================
    小整理:其他各种二维绘图函数

    bar  长条图
    errorbar  图形加上误差范围
    fplot  较精确的函数图形
    polar  极座标图
    hist  累计图
    rose  极座标累计图
    stairs  阶梯图
    stem  针状图
    fill  实心图
    feather  羽毛图
    compass  罗盘图
    quiver  向量场图
    ====================================================

    以下我们针对每个函数举例。
    当资料点数量不多时,长条图是很适合的表示方式:

    close all; % 关闭所有的图形视窗
    x=1:10;
    y=rand(size(x));
    bar(x,y);

    如果已知资料的误差量,就可用errorbar来表示。下例以单位标准差来做资料的误差量:

    x = linspace(0,2*pi,30);
    y = sin(x);
    e = std(y)*ones(size(x));
    errorbar(x,y,e)

    对於变化剧烈的函数,可用fplot来进行较精确的绘图,会对剧烈变化处进行较密集的取样,如下例:

    fplot('sin(1/x)', [0.02 0.2]); % [0.02 0.2]是绘图范围

    若要产生极座标图形,可用polar:

    theta=linspace(0, 2*pi);
    r=cos(4*theta);
    polar(theta, r);

    对於大量的资料,我们可用hist来显示资料的分 情况和统计特性。下面几个命令可用来验证randn产生的高斯乱数分:

    x=randn(5000, 1); % 产生5000个 ?=0,?=1 的高斯乱数
    hist(x,20); % 20代表长条的个数

    rose和hist很接近,只不过是将资料大小视为角度,资料个数视为距离,用极座标绘制表示:

    x=randn(1000, 1);
    rose(x);

    stairs可画出阶梯图:

    x=linspace(0,10,50);
    y=sin(x).*exp(-x/3);
    stairs(x,y);

    stems可产生针状图,常被用来绘制数位讯号:

    x=linspace(0,10,50);
    y=sin(x).*exp(-x/3);
    stem(x,y);

    stairs将资料点视为多边行顶点,并将此多边行涂上颜色:

    x=linspace(0,10,50);
    y=sin(x).*exp(-x/3);
    fill(x,y,'b'); % 'b'为蓝色

    feather将每一个资料点视复数,并以箭号画出:

    theta=linspace(0, 2*pi, 20);
    z = cos(theta)+i*sin(theta);
    feather(z);

    compass和feather很接近,只是每个箭号的起点都在圆点:

    theta=linspace(0, 2*pi, 20);
    z = cos(theta)+i*sin(theta);
    compass(z);

  • 相关阅读:
    矩形交,线段交
    P1338 末日的传说(贪心)
    P1338 末日的传说(贪心)
    P2014 选课 (依赖性背包,树上背包) U53204 【数据加强版】选课(后序遍历优化)
    P2014 选课 (依赖性背包,树上背包) U53204 【数据加强版】选课(后序遍历优化)
    P1417 烹调方案(01背包 )
    P1417 烹调方案(01背包 )
    D. Pawn(记忆化搜索)
    蓝桥杯--数位递增的数
    汉诺塔递归算法C语言
  • 原文地址:https://www.cnblogs.com/begtostudy/p/1799897.html
Copyright © 2020-2023  润新知