MATLAB - 3D 绘图



MATLAB 提供了强大的工具来创建三维可视化,允许用户在 3D 空间中表示和探索数据。3D 绘图对于可视化复杂数据至关重要,例如曲面、体积和多维数据集。

3D 绘图类型

  • 曲面图 - 这些使用表示变量之间关系的曲面来可视化两个变量的函数。
  • 网格图 - 网格图显示线框曲面,对于在网格上可视化两个变量的函数很有用。
  • 散点图 - 在 3D 中,散点图以三个维度表示单个数据点,通常使用不同的符号或颜色来表示不同的属性。

语法

plot3(X,Y,Z)
plot3(X,Y,Z,LineSpec)
plot3(X1,Y1,Z1,...,Xn,Yn,Zn)
plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn)

plot3(X,Y,Z) - 此方法负责在 3D 空间中绘制 X、Y 和 Z 的坐标。

  • 要通过线段绘制连接的坐标,请确保 X、Y 和 Z 是长度相同的向量。
  • 要在单个轴集上可视化多个坐标集,请将 X、Y 或 Z 中的至少一个指定为矩阵,而其余的保持为向量。

plot3(X,Y,Z,LineSpec) - 此方法绘制具有指定线型、标记和颜色的 3D 图。

plot3(X1,Y1,Z1,...,Xn,Yn,Zn) - 此方法有助于在同一组轴上绘制多组坐标。

plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn) - plot3 函数允许为各个 XYZ 三元组分配不同的线型、标记和颜色。可以为某些三元组指定 LineSpec,而为其他三元组省略。例如,使用 plot3(X1,Y1,Z1,'o',X2,Y2,Z2) 将标记分配给第一个三元组,但不分配给第二个三元组。

根据上面讨论的语法,让我们尝试一些示例来绘制 3D 图。

示例 1

螺旋线可以通过 x、y 和 z 的参数方程生成。螺旋线在柱坐标系中的通用方程为 -

以下是一个将使用 plot3(X,Y,Z) 绘制 3D 螺旋线的示例 -

x=r.cos(t)

y=r.sin(t)

z=h.t

其中 r 是螺旋线的半径,t 是参数,h 表示螺距或螺旋线在一圈完整旋转中垂直移动的距离。

% Parameters
r = 1;  % Radius
h = 1;  % Pitch
t = 0:0.1:10*pi;  % Parameter range

% Parametric equations for x, y, z
x = r * cos(t);
y = r * sin(t);
z = h * t;

% Plotting the helix
plot3(x, y, z);

当您在 matlab 命令窗口中执行相同操作时,输出为 -

draw 3d helix

示例 2

使用上述相同示例,让我们为 3D 绘图使用圆形标记

% Parameters
r = 1;  % Radius
h = 1;  % Pitch
t = 0:0.1:10*pi;  % Parameter range

% Parametric equations for x, y, z
x = r * cos(t);
y = r * sin(t);
z = h * t;

% Plotting the helix
plot3(x, y, z, 'o');

当您在 matlab 命令窗口中执行相同操作时,输出为 -

circular markers

示例 3

让我们使用此 plot3(X1,Y1,Z1,...,Xn,Yn,Zn) 绘制 3D 的多条线。

% Define parameters and range
t = 0:0.1:10*pi;  % Parameter range

% Line 1
r1 = 1;  % Radius of the first helix
h1 = 1;  % Pitch of the first helix
x1 = r1 * cos(t);
y1 = r1 * sin(t);
z1 = h1 * t;

% Line 2
r2 = 0.5;  % Radius of the second helix
h2 = 2;    % Pitch of the second helix
x2 = r2 * cos(t);
y2 = r2 * sin(t);
z2 = h2 * t;

% Plotting multiple lines
plot3(x1, y1, z1,x2, y2, z2);

当您在 matlab 中执行相同操作时,输出如下 -

plot multiple lines

示例 4

plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn) ,让我们为多条线 3D 绘图指定线型。

% Define parameters and range
t = 0:0.1:10*pi;  % Parameter range

% Line 1
r1 = 1;  % Radius of the first helix
h1 = 1;  % Pitch of the first helix
x1 = r1 * cos(t);
y1 = r1 * sin(t);
z1 = h1 * t;

% Line 2
r2 = 0.5;  % Radius of the second helix
h2 = 2;    % Pitch of the second helix
x2 = r2 * cos(t);
y2 = r2 * sin(t);
z2 = h2 * t;

% Plotting multiple lines
plot3(x1, y1, z1,'o',x2, y2, z2,'+');

对于第一条线,我们使用了圆形 (o) 标记,对于第二条线,我们使用了加号 (+) 线型。

代码执行后的输出如下 -

multiple line 3d

示例 5

在这个示例中,我们将看到标记和线型的自定义。

% Parameters
r = 1;  % Radius
h = 1;  % Pitch
t = 0:0.1:10*pi;  % Parameter range

% Parametric equations for x, y, z
x = r * cos(t);
y = r * sin(t);
z = h * t;

% Plotting the helix
plot3(x, y, z,'-o','Color','b','MarkerSize',10,'MarkerFaceColor','#CFCFCF')

当您在 matlab 命令窗口中执行相同操作时,输出为 -

Marker Size
广告