如何在matplotlib中绘制曲面图

我们之前介绍过如何在 matplotlib 中绘制等高线图现在是时候了解 matplotlib 中的曲面图了。曲面图是以视觉上令人愉悦的格式可视化 3 维数据的好方法。不同的颜色编码可以让人们了解不同点数据的变化性。在数学中,我们非常广泛地使用它。

使用虚拟数据在 matplotlib 中绘制曲面图

首先,让我们绘制一些虚拟数据的曲面图。我们首先导入所有必需的库:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

现在让我们创建一些虚拟数据:

x = [1,2,3,4]
y = [5,7,10,12]

曲面图需要网格数据,因此我们需要将数据转换为正确的格式,为此我们将使用 np.meshgrid 函数:

X, Y = np.meshgrid(x,y)

这给了我们以下结果:

[array([[1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4]]),
 array([[ 5555],
        [ 7777],
        [10, 10, 10, 10],
        [12, 12, 12, 12]])]

我们现在需要创建第三个变量 Z,因为曲面图是针对 3 维数据集完成的。我们将使用 X 和 Y 变量将它们转换为 Z 变量。可以制作的函数有好几个,但我们会用一个常用的z函数,代码如下:

def z_function(x, y):
    return np.sin(np.sqrt(x**2+y**2))
Z = z_function(X, Y)

现在我们有了所有三个变量,我们可以绘制曲面图。为此,我们执行以下代码:

plt.figure(figsize=(10, 10))
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z)

如果我们执行上面的代码,会生成下图:

使用虚拟数据的曲面图

如果您使用的是 Jupyter Notebook,那么您可以在最后一个块的开头添加以下命令,然后您甚至可以与该图进行交互:

matplotlib notebook

使用您自己的数据集(csv 文件)绘制曲面图

现在,我们并不总是知道需要绘制的函数。事实上,大多数时候我们都会有一些样本数据可供使用,并需要使用它来创建曲面图。为此,让我们看看说明。

首先,我们需要将 csv 文件导入到 python 实例中。为此,我们将使用pd.read_csv 函数

df = pd.read_csv("name_of_csv.csv")

我们可以通过执行以下代码来查看数据集中的所有列:

df.columns

我们现在可以设置 x 和 y 变量并再次创建网格:

x = df['column_name_of_x']
y = df['column_name_of_y']
X, Y = np.meshgrid(x,y)

我们将需要再次定义我们的 z 函数:

Z = z_function(X, Y)

现在剩下的又和以前一样了,我们初始化轴并绘制数据:

plt.figure(figsize=(10, 10))
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z)

作为最后一步,让我们添加一些标签,今天的工作就完成了!

ax.set_xlabel("x-label")
ax.set_ylabel("y-label")

结论

好了,读者们!您现在对如何使用 matplotlib 绘制曲面图有了基本的了解!如果您期待更多此类精彩内容,请继续关注 AskPython,一如既往,感谢您的阅读!