0%

MATLAB之图形绘制

本节主要介绍了MATLAB中基本的绘图方法,包括二维图形与三维图形的绘制。

二维曲线

1.plot(x,y)

  • 当x是向量,y是矩阵时,如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每个行向量为纵坐标绘制曲线,曲线的条数等于y的行数

    image-20221112142210160
  • 当x、y是同形矩阵时,以x、y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数

    image-20221112142014031
  • 含多个输入参数的plot函数

    image-20221112142643652
  • plot(x,y,选项) %选型用于指定曲线的颜色、线型、数据点标记

    image-20221112142928903

    例:

    image-20221112143153993

2.fplot(f,lims,选项)

  • f代表一个函数,通常采用函数句柄的形式
  • lims为x轴的取值范围,用二元向量[xmin,xmax]描述,默认值为[-5,5]
  • 此绘制函数会使得自变量的采样间隔设置更加合理
image-20221112144322203 image-20221112144738596

绘制图形的辅助操作

1. 图形标注

  • title(图形标题,属性名,属性值)

    • ‘Color’属性:用于设置图形标题文本的颜色
    • ‘Fontsize’属性:用于设置标题文字的字号
    • 对于需要换行的图形标题,使用字符串、逗号、大括号的形式
    image-20221112150916513
  • xlabel(x轴说明)与ylabel(y轴说明)

    image-20221112151343614
  • text(x,y,说明)gtext(说明) %添加文字说明

    • 其中text的x,y是说明的位置
    • gtext中说明的位置是程序执行后手动点击添加的
  • legend(图例1,图例2,……)

    image-20221112152220170

2.坐标控制

  • axis([xmin,xmax,ymin,ymax,zmin,zmax])

  • axis equal:横纵坐标轴采用等长刻度

  • axis square:产生正方形坐标系(默认为矩形)

  • axis auto:使用默认设置

  • axis off:取消坐标轴

  • axis on:显示坐标轴

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    figure(3)%测试axis的使用
    x = [0, 1, 1, 0, 0];
    y = [0, 0, 1, 1, 0];
    plot(x,y,LineWidth=3)
    axis([-0.1, 1.1, -0.1, 1.1])
    axis equal

    figure(4)%测试axis的使用
    x = [0, 1, 1, 0, 0];
    y = [0, 0, 1, 1, 0];
    plot(x,y,LineWidth=3)
    axis([-0.1, 1.1, -0.1, 1.1])
    axis square

    结果如下:

    image-20221112153251248

  • 给坐标系加网格、边框

    • grid on
    • grid off
    • box on
    • box off
  • 图形保持

    • hold on
    • hold off
    image-20221112153851222
  • 图形窗口的分割:subplot(m,n,p)

  • 添加总标题:sgtitle('总标题')

    image-20221112154137465

其他坐标系下的二维曲面图

1.对数坐标图

  • semilogx(x1,y1,选型1,x2,y2,选项2,……)
  • semilogy(x1,y1,选型1,x2,y2,选项2,……)
  • loglog(x1,y1,选型1,x2,y2,选项2,……)
image-20221112155957937

2.极坐标图

  • polarplot(theta,rho,选项) %theta为极角,rho为极经

image-20221112160425248

3.统计图

  • 条形图

    • bar(x,y,style) %绘制垂直条形图
    • barh(x,y,style) %绘制水平条形图
    • x为存储横坐标,y存储数据,y的行数必须与向量x的长度相同
    • style用于指定分组排列模式,’grouped’表示簇状分组,’stacked’表示堆积分组

    image-20221112161456011

  • 直方图

    • histogram(y,x)

    image-20221112162131529

    image-20221112162515866

  • 扇形图

    • pie(x,explode)
    • 其中x为统计的数据
    • explode将扇区从饼图偏移一定位置,其由与 x对应的零值和非零值组成的向量或矩阵。pie 函数仅将对应于 explode 中的非零元素的扇区偏移一定的位置。
    image-20221112162955255
  • 散点图

    • scatter(x,y,选项,'filled')
    • filled指定填充数据点标记,其省略时数据点是空心的

    image-20221112163815738

  • 矢量图

    • quiver(x,y,u,v)
    • 其中(x,y)指定矢量起点,(u,v)指定矢量终点
    image-20221112164930503

三维曲线

1.plot3(x,y,z)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
%在空间不同位置绘制5条正弦曲线。
figure(1)
subplot(1,2,1)
t=0:0.01:2*pi;
t=t';
x=[t, t, t, t, t];
y=[sin(t), sin(t)+1, sin(t)+2, sin(t)+3, sin(t)+4];
z=x;
plot3(x,y,z,LineWidth=2)
%这个例子也可以采用以下代码实现。
subplot(1,2,2)
t=0:0.01:2*pi;
x=t;
y=[sin(t); sin(t)+1; sin(t)+2; sin(t)+3; sin(t)+4];
z=x;
plot3(x,y,z,LineWidth=2)

结果如下:

image-20221112170835553

  • 含多组输入参数的plot3函数

    1
    2
    3
    4
    5
    6
    %含多组输入的plot3函数
    figure(2)
    t1=0:0.01:1.5*pi;
    t2=0:0.01:2*pi;
    t3=0:0.01:3*pi;
    plot3(t1,sin(t1),t1,'r', t2,sin(t2)+1,t2,'b',t3,sin(t3)+2,t3,'LineWidth',2)

    结果如下:

    image-20221112171510412

2.fplot3(funx,funy,funz,tlims)

  • funx、funy、funz代表定义曲线x、y、z坐标的函数,通常使用函数句柄的形式
  • tlims为参数函数自变量的取值范围,用二元向量[tmin,tmax]描述
1
2
3
4
5
6
%绘制墨西哥帽顶曲线
figure(3)
xt = @(t) exp(-t/10).*sin(5*t);
yt = @(t) exp(-t/10).*cos(5*t);
zt = @(t) t;
fplot3(xt, yt, zt, [-12, 12], 'r-.','LineWidth',2)

结果如下:

image-20221112171957475

三维曲面

1.平面网格数据的生成

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

    image-20221112173452121 image-20221112173746105 image-20221112173804182

2.绘制三维曲面的函数

  • mesh(x,y,z,c) %绘制线框
  • surf(x,y,z,c) %填充线框
  • 其中,x、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色。c省略时,颜色的设定正比于图形高度
1
2
3
4
5
6
7
8
9
10
11
12
%绘制三维曲面图
figure(5)
t = -2:0.2:2;
[X, Y] = meshgrid(t);
Z = X .* exp(-X.^2 - Y.^2);
subplot(1,3,1)
mesh(X,Y,Z);
subplot(1,3,2)
surf(X,Y,Z);
subplot(1,3,3)
plot3(X,Y,Z);
grid on

结果如下:

image-20221112174752702

3.色彩处理

  • colormap cmapname

  • matlab中预定义的颜色图

    image-20221112181451498

欢迎来到ssy的世界