在前一篇文章中,我们介绍了传统的二维数据可视化技术,事实上三维(3D)可视化技术目前也在变得越来越流行。三维数据可视化提供了一个独特的视角,使人们能够从多个维度探索数据,并提供一种更加身临其境和直观的方式来解读信息。
闲话少说,我们直接开始吧!
Python提供了一个名为Matplotlib的功能强大的库,它提供了包括散点图在内的多种绘图类型。散点图可用于直观显示数据集中多个变量之间的关系。
要创建散点图,我们可以使用 Matplotlib 库中的scatter()函数。该函数将数据点的 x、y 和 z 坐标作为输入,并将它们绘制成三维平面上的单个标记。
样例代码如下:
import matplotlib.pyplot as plt
import numpy as np
# Generating sample data
x = np.random.standard_normal(100)
y = np.random.standard_normal(100)
z = np.random.standard_normal(100)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# Creating a scatter plot
scatter = ax.scatter(x, y, z, c=z, cmap='viridis', s=100)
# Adding color bar and labels
fig.colorbar(scatter, ax=ax, label='Depth')
ax.set_xlabel('X Axis')
ax.set_ylabel('Y Axis')
ax.set_zlabel('Z Axis')
plt.show()
结果如下:
上述散点图函数是一个强大的工具,可以将数据点以三维方式可视化。通过结合颜色、大小、交互性等提示,我们可以创建具有视觉吸引力的交互式图表,从而增强数据探索和分析。
要使用Matplotlib可视化三维曲面,我们可以使用plot_surface()函数。该函数接收三个主要参数:曲面上各点的坐标、各点的相应值以及可选的用于给曲面着色的颜色图。
通过将曲面点的 X、Y 和 Z 坐标表示为数组,我们可以创建网格,并根据数学函数来计算相应的 Z 值。然后,我们可以将这些数组传递给plot_surface()函数,生成曲面图。
样例代码如下:
import matplotlib.pyplot as plt
import numpy as np
# Generate sample data
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
surf = ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))
ax.set_zlim(-0.75, 0.75)
ax.set_xlabel('X Axis')
ax.set_ylabel('Y Axis')
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
运行后结果如下:

Python中的曲面绘图是可视化三维曲面的一项强大技术。利用Matplotlib等库,我们可以创建交互式的图表,以帮助我们更好地理解复杂数据。
在三维空间中绘制折线涉及将数据点表示为 x、y 和z轴上的坐标。这种技术可以让我们同时直观地看到三个变量之间的关系。通过绘制线条,我们可以观察到数据中的趋势、模式和相关性,从而全面了解信息。
我们来看个示例如下:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# Generate data
t = np.linspace(0, 2*np.pi, 100)
x = np.sin(t)
y = np.cos(t)
z = t
# Plot a 3D line
ax.plot(x, y, z, label='3D Line')
ax.legend()
ax.set_xlabel('X Axis')
ax.set_ylabel('Y Axis')
ax.set_zlabel('Z Axis')
plt.show()
运行后得到结果如下:

三维折线图是将数据中的复杂关系可视化的重要技术。通过在三维空间中绘制线条,我们可以观察到数据中的模式、趋势和相关性,并有效地传达信息。添加标签和注释可提高清晰度,确保受众能够准确解读绘图。
通过3D柱状图,我们可以在三维空间中可视化数据,为所表示的信息增加一个额外的维度。我们将介绍在柱状图中自定义条形图颜色、大小和方向的过程。
示例代码如下:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# Sample data
x, y = np.random.rand(2, 5) * 4
z = np.zeros(5)
dx = dy = np.ones(5)
dz = np.random.rand(5) * 2
ax.bar3d(x, y, z, dx, dy, dz)
ax.set_xlabel('X Axis')
ax.set_ylabel('Y Axis')
ax.set_zlabel('Z Axis')
plt.show()
运行后得到结果如下:

Python 中的三维柱状图绘制技术允许我们在三维空间中表示数据,为可视化增加了一个维度。通过自定义柱状图的颜色、大小和方向,我们可以绘制出具有视觉吸引力且易于理解的图表。
通过将等高线图叠加到3D可视化图上,可以同时直观地表示多个维度,有助于突出变量之间的关系和模式。这种技术提高了数据的可理解性,使分析更加全面。
我们不妨来看个示例如下:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.linspace(-5, 5, 50)
y = np.linspace(-5, 5, 50)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# Create a contour plot
ax.contour3D(X, Y, Z, 50, cmap='viridis')
ax.set_xlabel('X Axis')
ax.set_ylabel('Y Axis')
ax.set_zlabel('Z Axis')
plt.show()
运行后,得到结果如下:

3D等高线图绘制是一种使用 Python 在三维空间中实现等高线可视化的强大技术。通过调整等高线级别、应用平滑技术以及将等高线图叠加到其他可视化效果上,大家可以有效地分析和解释复杂数据,发现有价值的见解和模式。
数据可视化是数据分析不可或缺的一部分,因为它能让我们有效地理解和交流模式、趋势和分布。本文重点介绍了如何利用Python中的可视化库进行三维数据可视化分析,并给出了相应的代码示例。
您学废了嘛?