Login
宁夏3d云Info
首页 > 专业分类 > 数据分析

五种三维可视化数据建模技术

MeolujumA 2024-06-04 17:32:11 人看过

01引言

在前一篇文章中,我们介绍了传统的二维数据可视化技术,事实上三维(3D)可视化技术目前也在变得越来越流行。三维数据可视化提供了一个独特的视角,使人们能够从多个维度探索数据,并提供一种更加身临其境和直观的方式来解读信息。

闲话少说,我们直接开始吧!

02三维散点图

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()


结果如下:

图片.png

上述散点图函数是一个强大的工具,可以将数据点以三维方式可视化。通过结合颜色、大小、交互性等提示,我们可以创建具有视觉吸引力的交互式图表,从而增强数据探索和分析。

03 3D曲面图

要使用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()


运行后结果如下:

图片.png

Python中的曲面绘图是可视化三维曲面的一项强大技术。利用Matplotlib等库,我们可以创建交互式的图表,以帮助我们更好地理解复杂数据。

04 3D折线图

在三维空间中绘制折线涉及将数据点表示为 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()


运行后得到结果如下:

图片.png

三维折线图是将数据中的复杂关系可视化的重要技术。通过在三维空间中绘制线条,我们可以观察到数据中的模式、趋势和相关性,并有效地传达信息。添加标签和注释可提高清晰度,确保受众能够准确解读绘图。

05 3D柱状图

通过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()


运行后得到结果如下:

图片.png

Python 中的三维柱状图绘制技术允许我们在三维空间中表示数据,为可视化增加了一个维度。通过自定义柱状图的颜色、大小和方向,我们可以绘制出具有视觉吸引力且易于理解的图表。

06 3D等高线图

通过将等高线图叠加到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()


运行后,得到结果如下:

图片.png

3D等高线图绘制是一种使用 Python 在三维空间中实现等高线可视化的强大技术。通过调整等高线级别、应用平滑技术以及将等高线图叠加到其他可视化效果上,大家可以有效地分析和解释复杂数据,发现有价值的见解和模式。

07总结

数据可视化是数据分析不可或缺的一部分,因为它能让我们有效地理解和交流模式、趋势和分布。本文重点介绍了如何利用Python中的可视化库进行三维数据可视化分析,并给出了相应的代码示例。

您学废了嘛?


版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章

{"errcode":40164,"errmsg":"invalid ip 101.43.141.73 ipv6 ::ffff:101.43.141.73, not in whitelist rid: 6ac41bed-20bd03aa-4bdc1d51"}
{"errcode":40164,"errmsg":"invalid ip 101.43.141.73 ipv6 ::ffff:101.43.141.73, not in whitelist rid: 6ac41bed-08abb23a-79d0bb58"}