我们之前介绍过如何在 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([[ 5 , 5 , 5 , 5 ], [ 7 , 7 , 7 , 7 ], [ 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,一如既往,感谢您的阅读!