MATLAB 中的 3D 绘图

Ammar Ali 2023年1月30日 2022年5月11日
  1. 在 MATLAB 中使用 mesh() 函数创建曲面图
  2. 在 MATLAB 中使用 scatter3() 函数创建 3D 散点图
  3. 在 MATLAB 中使用 contour3() 函数创建 3D 等高线图
  4. 在 MATLAB 中使用 plot3() 函数创建点或线的 3D 图
  5. 在 MATLAB 中使用 quiver3() 函数创建 3D Quiver 或矢量图
  6. 在 MATLAB 中使用 bar3() 函数创建 3D 条形图
MATLAB 中的 3D 绘图

本教程将讨论在 MATLAB 中使用 mesh()scatter3()contour3()plot3()quiver3()bar3() 函数创建 3d 图。

在 MATLAB 中使用 mesh() 函数创建曲面图

Matlab 的内置函数 mesh() 在 3D 平面上创建曲面图。我们可以将 mesh() 函数内的矩阵作为我们想要在 3D 平面中绘制的函数传递。

mesh() 函数将使用 x-y 坐标的默认值沿 z 轴绘制给定矩阵。x 和 y 坐标将来自给定矩阵的索引。

给定的矩阵将在 z 轴上绘制为三维平面上的高度。

例如,让我们创建一个矩阵 Z 并使用 Matlab 中的 mesh() 函数将其绘制在曲面图上。

请参阅下面的代码。

clc
[x,y] = meshgrid(-18:1:18);
r = sqrt(x.^2 + y.^2)/2;
z = cos(r)./r;
mesh(x,y,z)

输出:

曲面图 1

查看此链接以获取有关 mesh() 函数的更多详细信息。

在 MATLAB 中使用 scatter3() 函数创建 3D 散点图

如果我们想创建一个 3D 散点图,我们可以使用 scatter3() 函数。此函数与 scatter() 函数相同,但它将给定数据绘制在 3D 平面中。

我们可以给 scatter3() 函数提供两个或三个输入向量。

在三个输入的情况下,第一个向量包含 x 坐标,第二个包含 y 坐标,第三个包含 z 坐标。

在两个输入向量的情况下,第三个坐标 z 将取自前两个坐标的索引。

例如,让我们使用 scatter3() 函数在 3D 位置绘制散点图。

请参阅下面的代码。

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
z = 1:100;
scatter3(x,y,z)

输出:

3D 平面中的散点图

查看此链接以获取有关 scatter() 函数的更多详细信息。

在 MATLAB 中使用 contour3() 函数创建 3D 等高线图

我们可以使用 Matlab 的内置函数 contour3() 创建 3D 等高线图。等值线图是根据值具有不同颜色的等值线图。

赋予线条的颜色取决于它的值。较冷的颜色对应于较低的值,较热的颜色对应于较高的值。

例如,让我们使用 sphere()contour3() 函数绘制一个球体的 3D 等高线图。请参阅下面的代码。

clc
[x,y,z] = sphere(100);
contour3(x,y,z);

输出:

球体的 3D 等高线图

查看此链接了解有关 contour3() 函数的更多详细信息。

在 MATLAB 中使用 plot3() 函数创建点或线的 3D 图

我们已经知道 Matlab 中的 plot() 函数,它用于在 2D 平面上绘制数据。plot3() 函数类似于 plot() 函数。

唯一的区别是 plot3() 函数在 3D 平面上绘制数据。我们可以将数据绘制为一条线,即连续图,也可以绘制为点,即离散图。

我们必须传递三个坐标 x、y 和 z,才能在 3D 平面上绘制数据。例如,让我们使用 plot3() 函数在 3D 中绘制螺旋线。

请参阅下面的代码。

clc
t = 0:pi/50:10*pi;
sinet = sin(t);
cost = cos(t);
plot3(sinet,cost,t)

输出:

3D 图上的螺旋线

查看此链接以获取有关 plot3() 函数的更多详细信息。

在 MATLAB 中使用 quiver3() 函数创建 3D Quiver 或矢量图

Matlab 的内置函数 quiver3() 可用于绘制 3D 箭袋或矢量图。标量仅包含幅度,但向量包含幅度和方向。

我们可以使用 plot3() 函数创建标量数据的 3D 图,但我们不能使用 plot3() 函数绘制矢量数据,因为该函数不会绘制矢量的方向。

在向量的情况下,我们可以使用 quiver3() 函数,它将绘制向量的大小和方向。

例如,让我们创建一个矩阵并将其绘制在具有方向的 3D 平面上。请参阅下面的代码。

clc
m = [1:10 ;10:-1:1;1:10];
quiver3(m,m,m,m)

输出:

3D 箭袋图

查看此链接以获取有关 quiver3() 函数的更多详细信息。

在 MATLAB 中使用 bar3() 函数创建 3D 条形图

我们可以使用 Matlab 的内置函数 bar3() 在 3D 平面上绘制条形图。我们必须传递数据的输入矩阵,在 3D 平面中绘制为 z 轴上的高度。

其他两个坐标(x 和 y)将取自给定矩阵的索引。例如,让我们从给定的矩阵创建一个 3D 条形图。

请参阅下面的代码。

clc
m = [1:10 ;10:-1:1;1:10];
bar3(m)

输出:

使用 bar3 的条形图

查看此链接以获取有关 bar3() 函数的更多详细信息。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - MATLAB Plot