Matplotlib 3D 线图

Salman Mehmood 2024年2月15日
  1. 在 Matplotlib 中创建 3D 线图
  2. 在 Matplotlib 中创建多色 3D 线图
Matplotlib 3D 线图

本教程演示了在 Matplotlib 中创建 3D 绘图以及如何在 Matplotlib 中使用多种颜色创建它。

在 Matplotlib 中创建 3D 线图

三维绘图的概念无处不在。流经水、油、汽油或任何我们管道的管道是具有长度、宽度和高度的三维。

因此,我们还可以使用 mpl_toolkits 工具创建图形或绘图,这使得在 Matplotlib 中创建 3D 绘图变得更加容易。

让我们从导入以下模块开始。

import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits import mplot3d

现在我们必须指定坐标,但是在我们开始绘制三维空间之前,我们需要创建一个轴,并且这个轴必须有一个 3D projection 参数。我们有不同的预测。

我们不仅有 3D 投影。我们可以使用大量不同的投影,所以如果我们想创建一个新的轴,我们需要调用 axes() 方法。

要创建 3D 绘图,我们可以传递一个 projection 参数并将值设置为 "3d"

axes = plot.axes(projection="3d")

我们使用 arange() numpy 方法创建三个维度的数据。arange() 是你选择起点、终点和步长。

我们对 y_data 做同样的事情。我们在 z 坐标上使用了一些数学函数,以便在我们的绘图中获得更好的结果。

axes = plot.axes(projection="3d")
x_data = np.arange(0, 50, 0.1)
y_data = np.arange(0, 50, 0.1)
z_data = np.sin(x_data) * np.cos(y_data)

完整代码示例:

import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits import mplot3d

axes = plot.axes(projection="3d")
x_data = np.arange(0, 50, 0.1)
y_data = np.arange(0, 50, 0.1)
z_data = np.sin(x_data) * np.cos(y_data)

axes.plot(x_data, y_data, z_data)
plot.show()

输出:

在 Matplotlib 中创建 3D 线图

在 Matplotlib 中创建多色 3D 线图

此示例演示如何使用多种颜色的 3D 线图。在下面的代码中,我们只是分离每个线段并在六种预定义颜色上迭代循环。

colors = "rgbcmy"
for i in range(len(x_data) - 1):
    axes.plot(
        x_data[i : i + 2], y_data[i : i + 2], z_data[i : i + 2], color=colors[i % 6]
    )
    # ax.plot(x[i:i+2], y[i:i+2], z[i:i+2], color=cols[i%6])

完整代码示例:

import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits import mplot3d

axes = plot.axes(projection="3d")
x_data = np.arange(0, 50, 0.1)
y_data = np.arange(0, 50, 0.1)
z_data = np.sin(x_data) * np.cos(y_data)

colors = "rgbcmy"
for i in range(len(x_data) - 1):
    axes.plot(
        x_data[i : i + 2], y_data[i : i + 2], z_data[i : i + 2], color=colors[i % 6]
    )
    # ax.plot(x[i:i+2], y[i:i+2], z[i:i+2], color=cols[i%6])

plot.show()

输出:

Matplotlib 中的多色 3D 线图

单击此处阅读有关 3D 绘图的详细文档。

作者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn