MATLAB作图方法与技巧(三)

1.利用指令plot绘制圆的参数方程x = sin(t),y = cos(t),(0<=t<=2*pi)的曲线图.

    代码如下

    t = linspace(0,2*pi,100);

    x = sin(t);y = cos(t);

    f = x + i*y;

    plot(f);

   axis('square');

    其中axis中的参数为square表示图形示以正方形的形式显示.


2.figure命令

    figure(i)有两种不同的功能

    ①若没有第i个图形窗口,则新建第i个图形窗口

    ②若有第i个图形窗口,则将第i个图形窗口切换到当前窗口


3.柱状图的绘制

    bar作垂直的柱状图,barh作水平的柱状图,下面以bar为例说明其两种用法.

    ①bar(X)

    作以X为值的柱状图,如

    X = [1 5 3;2 5 4;3 9 6;4 8 6;12 2 2];

    bar(X);

    这种用法是以自然数作为横坐标索引的.

    ②bar(X,Y)

    作以X为横坐标索引且以Y为值的柱状图,如

    X = [2012 2013 2014 2015 2016];

    Y = [1 5 3;2 5 4;3 9 6;4 8 6;12 22];

    bar(X,Y);

    ③bar(X,’stack’)

    如:

    X = [1 5 3;2 54;3 9 6;4 8 6;12 2 2];

    bar(X,'stack');

    ④bar(X,Y,’stack’)

    如:

    X = [2012 20132014 2015 2016];

    Y = [1 5 3;2 54;3 9 6;4 8 6;12 2 2];

    bar(X,Y,'stack');


4.饼图的绘制

    pie命令绘制平面饼图,pie3命令绘制三维饼图,下面以pie命令为例说明其常用用法.

    ①pie(x)

    作以向量x为比例的平面饼图,如

    x = [5 1 4 3 2];

    pie(x);

    ②pie(x,explode)

    作以向量x为比例的平面饼图,并根据0-1向量explode将某一块分裂出去,如

    x = [5 1 4 3 2];

    explode = [0 1 0 1 0];

    pie(x,explode);

    下面,是一个综合的例子

    x = [5 1 4 3 2];

    explode = [0 1 0 1 0];

    subplot(2,2,1);

    pie(x);

    subplot(2,2,2);

    pie(x,explode);

    subplot(2,2,3);

    pie3(x);

    subplot(2,2,4);

    pie3(x,explode);


5.根据参数方程绘制空间曲线——plot3命令

    plot3命令有两种参数形式,区别在于是否有对曲线颜色、样本点形状、曲线形式等的控制参数

    ①不带控制参数

    如绘制x=sin(t),y=cos(t),z=t,0<=t<=10*pi的空间曲线,使用plot3命令,如下

    t =linspace(0,10*pi,360);

    x = sin(t);y =cos(t);z = t;

    plot3(x,y,z);grid on;

    ②带控制参数

    如绘制x=sin(t),y=cos(t),z=cos(2t),0<=t<=2*pi的空间曲线,使用plot3命令,如下

    t =linspace(0,2*pi,36);

    x = sin(t);y = cos(t);z= cos(2*t);

    plot3(x,y,z,'b*--');gridon;


6.根据函数z=f(x,y)绘制空间曲面

    先用meshgrid命令生成数据点(x,y)集合,再用mesh或surf命令绘制曲面图,二者的参数形式完全一样,区别在于surf会在给网格上涂色

    ①mesh命令

    绘制z=xy在[-1,1]x[2,4]上的曲面图,使用mesh命令

    x =linspace(-1,1,10);

    y =linspace(2,4,20);

    [X,Y] = meshgrid(x,y);

    Z = X.*Y;

    mesh(X,Y,Z);

    ②surf命令

    将①中代码的mesh换为surf会得到不一样的结果,代码如下

    x =linspace(-1,1,10);

    y =linspace(2,4,20);

    [X,Y] =meshgrid(x,y);

    Z = X.*Y;

    surf(X,Y,Z);

posted @ 2017-01-13 16:42  tensory  阅读(851)  评论(0编辑  收藏  举报