Matlab绘图

发布于:2025-06-03 ⋅ 阅读:(23) ⋅ 点赞:(0)

MATLAB 绘图

本篇文档介绍 MATLAB 中常用的绘图函数,包括二维、三维绘图函数及其控制方式,并涵盖坐标轴标注与图形调整指令。

一、基本绘图函数 plot

1.1 基本语法

plot(x, y)                  % 基本绘图
plot(x, y, s)              % 使用样式字符串s绘图
plot(x1, y1, s1, x2, y2, s2)   % 同时绘制多个函数

1.2 样式字符串 s 的格式:

  • 线型:'-'(实线),'--'(虚线),':'(点线),'-.'(点划线)
  • 颜色:'r' 红,'g' 绿,'b' 蓝,'k' 黑,'m' 品红,'c' 青,'y'
  • 标记:'o' 圆圈,'x' 叉号,'+' 加号,'*' 星号
>> x = 0:0.1:2*pi;
>> y1 = sin(x);
>> y2 = cos(x);
>> plot(x, y1, '-r*', x, y2, ':b');

在这里插入图片描述

二、函数绘图 ezplot

2.1 显函数绘图

语法:

ezplot('f(x)', [x_min, x_max])

示例:

>> ezplot('sin(x)', [0, 2*pi])

在这里插入图片描述
2016)

2.2 隐函数绘图

语法:

>> ezplot('f(x,y)', [x_min, x_max, y_min, y_max])

示例:

>> ezplot('x^2 + y^2 - 4')    % 圆的隐函数

在这里插入图片描述

>> ezplot('x^2 + y^2 - 4', [1, 2, 1, 2])   

在这里插入图片描述
)

2.3 参数方程绘图

语法:

>> ezplot('x(t)', 'y(t)', [t_min, t_max])

示例:

>> ezplot('cos(t)', 'sin(t)', [0, 2*pi])  % 单位圆

在这里插入图片描述

三、其他二维图

3.1 条形图 bar

语法:

bar(x, y, s)
  • x表示横坐标
  • y表示纵坐标
  • s与plot中的功能一样

示例:

>> y = [1 3 5 2];
>> bar(["a" "b" "c" "d"], y)

在这里插入图片描述

3.2 阶梯图 stairs

语法:

stairs(x, y, s)
  • x表示横坐标,只能为数值型
  • y表示纵坐标
  • s与plot中的功能一样

示例:

>> y = [1 3 5 2];
>> stairs([1 2 3 7], y)

在这里插入图片描述

3.3 杆图 stem

语法:

stem(x, y, s)
  • x表示横坐标
  • y表示纵坐标
  • s与plot中的功能一样

示例:

>> y = [1 3 5 2];
>> stem([1 2 3 7], y)

在这里插入图片描述

3.4 填充图 fill

绘制x,y对应位置上的元素构成的点围成的图像
语法:

fill(x, y, c)
  • x表示横坐标
  • y表示纵坐标
  • c表示颜色

示例:

>> x = [0 1 1 0];
>> y = [0 0 1 1];
>> fill(x, y, 'g')

在这里插入图片描述

3.5 极坐标图 polar

语法:

polar(theta, rho, s)
  • theta表示极角
  • rho表示长度
  • s与plot中的功能一样

示例:

>> theta = linspace(0, 2*pi, 100);
>> r = sin(2*theta);
>> polar(theta, r)

在这里插入图片描述

3.6 饼图 pie

语法:

pie(x, explode, labels)
  • x表示数值
  • explode为逻辑向量,表示是否要把对应扇形炸开
  • labels为向量,表示对应扇形的标签

示例:

>> x = [1 2 3];
>> pie(x)

在这里插入图片描述

>> x = [1 2 3];
>> pie(x, [1 0 0])

在这里插入图片描述

>> x = [1 2 3];
>> pie(x, [1 0 0], ["a" "b" "c"])

在这里插入图片描述

3.7 复数相量图

语法:

compass(z, s)
  • z是一个复数向量
  • s与plot中的功能一样

示例:

>> z = [1+2i, 2+1i, 1-1i];
>> compass(z)

在这里插入图片描述

四、三维绘图函数

4.1 三维线图 plot3

语法:

plot(x, y, z)                  % 基本绘图
plot(x, y, z, s)              % 使用样式字符串s绘图
plot(x1, y1, z1, s1, x2, y2, z2, s2)   % 同时绘制多个函数

示例:

>> t = linspace(0, 10, 100);
>> plot3(cos(t), sin(t), t)

在这里插入图片描述

4.2 网格生成 meshgrid

语法:

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

等价于X=ones(size(y))*x,Y=y*ones(size(x))y得接转置符号'

>> x = 1:3;
>> y = (10:10:30)';

>> X = ones(size(y)) * x, Y = y * ones(size(x))

X =
     1     2     3
     1     2     3
     1     2     3

Y =
    10    10    10
    20    20    20
    30    30    30

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

X =

     1     2     3
     1     2     3
     1     2     3


Y =

    10    10    10
    20    20    20
    30    30    30

4.3 网格图 mesh

语法:

mesh(x, y, z)
  • x横坐标
  • y纵坐标
  • z第三维坐标

示例:

>> [x, y] = meshgrid(-5:0.5:5);
>> z = sin(sqrt(x.^2 + y.^2));
>> mesh(x, y, z)

在这里插入图片描述

4.4 曲面图 surf

语法:

surf(x, y, z)
  • x横坐标
  • y纵坐标
  • z第三维坐标

示例:

>> [x, y] = meshgrid(-5:0.5:5);
>> z = sin(sqrt(x.^2 + y.^2));
>> surf(x, y, z)

在这里插入图片描述

4.5 加边框的网格图 meshz

语法:

meshz(x, y, z)
  • x横坐标
  • y纵坐标
  • z第三维坐标

示例:

>> [x, y] = meshgrid(-5:0.5:5);
>> z = sin(sqrt(x.^2 + y.^2));
>> meshz(x, y, z)

在这里插入图片描述

4.6 球体 sphere

语法:

[x, y, z] = sphere(n)
  • n:球面在经纬方向的分段数,决定了生成球面的精细程度。
    • 例如,n = 10 表示经纬线各划分为 10 段,总共 (n+1)×(n+1) 个点。
    • n 越大,球面越平滑;n 越小,球体越粗糙。
  • 返回值 x, y, z(n+1)×(n+1) 的矩阵,表示球面坐标网格。

示例:

>> [x, y, z] = sphere(30);
>> surf(x, y, z)

在这里插入图片描述

>> [x, y, z] = sphere(90);
>> surf(x, y, z)

在这里插入图片描述

4.7 圆柱体 cylinder

语法:

[x, y, z] = cylinder(R, n)
  • R:一个向量,指定每层的半径,例如 [1 0.5 0] 表示从底到顶的变化。
  • n:圆周方向上的分段数量(将圆平均划分为 n 等分)。
  • 返回值 x, y, z(n+1)×length(R) 的矩阵,表示圆柱的坐标点。

示例:

>> [x, y, z] = cylinder(1, 50);
>> surf(x, y, z)

在这里插入图片描述

[x, y, z] = cylinder(1, 500);
surf(x, y, z)

在这里插入图片描述

>> [x, y, z] = cylinder([1 0]);
>> surf(x, y, z)

在这里插入图片描述

>> [x, y, z] = cylinder([1 0.5 0 1]);
>> surf(x, y, z)

在这里插入图片描述

4.8 峰值函数 peak

语法:

Z = peaks(n)
[X, Y, Z] = peaks(n)
  • n:用于生成 n×n 网格的数据点数,决定函数采样精度。
    • 越大越精细,默认值为 49。
    • peaks 会返回一个形如山峰的三维函数,用于演示 surf、mesh、contour 等图形。

示例:

>> z = peaks(25);
>> surf(z)

在这里插入图片描述

>> [X, Y, Z] = peaks(50);
>> surf(X, Y, Z)

在这里插入图片描述

五、散点图与等高线图

5.1 二维散点图 scatter

>> x = rand(1, 50);
>> y = rand(1, 50);
>> scatter(x, y)

在这里插入图片描述

5.2 等高线图 contour

contour(x, y, z)
>> x = -2*pi:0.1:2*pi;
>> y = -2*pi:0.1:2*pi;
>> [X, Y] = meshgrid(x, y);
>> Z = sin(X) .* cos(Y);
>> contour(X, Y, Z)

在这里插入图片描述

5.3 三维散点图 scatter3

z = rand(1, 50);
scatter3(x, y, z)
>> x = rand(1, 50);
>> y = rand(1, 50);
>> z = rand(1, 50);
>> scatter3(x, y, z)

在这里插入图片描述

5.4 三维等高线 contour3

contour3(x, y, z)
>> x = -2*pi:0.1:2*pi;
>> y = -2*pi:0.1:2*pi;
>> [X, Y] = meshgrid(x, y);
>> Z = sin(X) .* cos(Y);
>> contour3(X, Y, Z)

在这里插入图片描述

六、图形控制与标注

6.1 网格线 grid

grid on
grid off

示例:

>> x = rand(1, 50);
>> y = rand(1, 50);
>> scatter(x, y)
>> grid on

在这里插入图片描述

6.2 边框 box

box on
box off

示例:

>> x = rand(1, 50);
>> y = rand(1, 50);
>> scatter(x, y)
>> grid on
>> box on

在这里插入图片描述

6.3 标签 xlabel、ylabel、zlabel

xlabel('X 轴')
ylabel('Y 轴')
zlabel('Z 轴')

示例:

>> x = rand(1, 50);
>> y = rand(1, 50);
>> scatter(x, y)
>> xlabel('X 轴')
>> ylabel('Y 轴')

在这里插入图片描述

6.4 标题 title

title('绘图标题')

示例:

>> x = rand(1, 50);
>> y = rand(1, 50);
>> scatter(x, y)
>> xlabel('X 轴')
>> ylabel('Y 轴')
>> title('散点图')

在这里插入图片描述

6.5 添加文本 text、gtext

语法:

text(x, y, '文本标注')
gtext('点击位置添加')

text将在位置 ( x , y ) (x,y) (x,y)处添加文本,gtext执行后鼠标点击在哪里就会在哪里添加文本。
示例:

>> x = rand(1, 50);
>> y = rand(1, 50);
>> scatter(x, y)
>> text(0.1, 0.2, '文本标注')
>> gtext('点击位置添加')

在这里插入图片描述

6.6 轴范围控制 axis

axis([xmin xmax ymin ymax])   % 设置 XY 轴范围
axis auto                     % 将坐标轴范围返回到默认状态

示例:

>> x = rand(1, 50);
>> y = rand(1, 50);
>> scatter(x, y)
>> axis([0 0.5 0 0.5])
>> axis auto

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.7 多图重叠 hold

hold on    % 继续在当前图形上绘图
hold off   % 关闭重叠绘图

示例:

>> x = 1:5

x =

     1     2     3     4     5

>> y = 1:5

y =

     1     2     3     4     5

>> plot(x, y)

在这里插入图片描述

>> hold on
>> plot([2 3 5], [8 10 15])

在这里插入图片描述

6.8 新建图形窗口 figure

figure      % 新窗口
figure(2)   % 指定编号

示例:

>> figure
>> figure(2)
>> figure(10)

在这里插入图片描述

6.9 子图 subplot

>> subplot(2, 2, 1)   % 创建 2x2 网格的第1个子图
>> plot([1:5], [1:5])
>> subplot(2, 2, 2)   % 创建 2x2 网格的第2个子图
>> plot(sin([1:5]), cos([1:5]))
>> subplot(2, 2, 3)   % 创建 2x2 网格的第3个子图
>> plot([1:5], [1:5].^2)
>> subplot(2, 2, 4)   % 创建 2x2 网格的第4个子图
>> plot([1:5], [1:5].^3)

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到