Python 使用 Plotly 绘制从二维到六维的高维数据可视化

阿麦
阿麦
发布时间:2026-10-13 | 7人浏览过
原创

本文详解如何利用 Python 的 Plotly 库,将汽车数据集从基础的二维散点图逐步扩展至六维可视化。通过引入颜色、大小、形状等视觉编码,分别映射油耗、发动机尺寸及车门数,实现多维数据的直观展示与规律分析。


引言与数据准备

内容来源参考自维基百科。

人类大脑通常最多只能直观感知三维空间,超出这一维度的空间想象极具挑战性。即便是在三维空间中,理解复杂的几何关系也往往令人感到吃力,因此在实际应用中,二维平面是最为常用的表达方式。

然而,我们依然有能力绘制出多维空间的数据分布。本文将演示如何使用 Python 中的 plotly 库,生成从三维到六维的图表,以直观展示高维数据的形态特征。

本次示例使用的数据来自 UCI 机器学习仓库中的真实汽车数据集。该数据集包含 205 个样本,每个样本拥有 26 个特征。为了演示高维绘制,我们从中选取了 6 个关键特征进行图形构建:

环境准备

首先,需要确保环境中已安装 plotly 库:

环境配置与基础二维绘图


pip install plotly

接着加载数据集(完整代码见文末):


import pandas as pd 
data = pd.read_csv("cars.csv")

首先,我们绘制基础的二维图表,仅需选取 RPM 和 Speed 这两个特征即可实现:

绘制 2-D 图

具体代码实现如下:


import plotly 
import plotly.graph_objs as go 
 
#绘制散点图 
fig1 = go.Scatter(x=data['curb-weight'], 
         y=data['price'], 
         mode='markers') 
 
#绘制布局 
mylayout = go.Layout(xaxis=dict(title="curb-weight"), 
           yaxis=dict( title="price")) 
 
#绘图 html 
plotly.offline.plot({"data": [fig1], 
           "layout": mylayout}, 
           auto_open=True)

生成的图表可以保存为 html 文件,打开后即可生成交互式界面;同时,也支持将其保存为 png 静态图片。

接下来,通过增加特征维度来绘制三维图表。

绘制 3-D 图

利用 plotly 提供的 plot.Scatter3D 方法,可以方便地绘制三维散点图:

代码实现如下:

三维至六维可视化进阶


fig1 = go.Scatter3d(x=data['curb-weight'], 
          y=data['horsepower'], 
          z=data['price'], 
          marker=dict(opacity=0.9, 
                reversescale=True, 
                colorscale='Blues', 
                size=5), 
          line=dict (width=0.02), 
          mode='markers') 
 
mylayout = go.Layout(scene=dict(xaxis=dict( title="curb-weight"), 
                yaxis=dict( title="horsepower"), 
                zaxis=dict(title="price")),) 
 
plotly.offline.plot({"data": [fig1], 
           "layout": mylayout}, 
           auto_open=True, 
           filename=("3DPlot.html"))

那么,如何绘制更高维度的图表呢?显然,单纯扩展坐标轴的方式无法实现。这里有一个技巧:通过引入“虚拟维度”,利用不同的颜色、标记大小或形状类别来承载额外信息。借助这种方法,即可在三维基础上展示第四个维度。

绘制 4-D 图

在原有的三维图中,我们将第四个变量——车辆油耗(city-mpg)引入,并通过颜色的深浅来表征该变量。由此,我们成功绘制出了四维图。观察图表可以发现一个规律:当其他三个指标(马力、车身重量、车价格)越高时,车辆油耗往往越低。

绘制 5-D 图

基于上述思路,我们可以通过调整圆形标记的大小,再增加一个维度——发动机尺寸(engine-size),从而构建出五维图:

通过这种可视化方式,我们依然能够较为清晰地观察到:车价越高的车辆,其发动机尺寸通常也越大这一规律。

绘制 6-D 图

进一步地,我们可以通过更改标记的形状来增加第六个维度——车门数。在图中,圆形代表四门车,方形代表两门车。通常,两门车多为昂贵的豪华跑车,从图中也可以看出,方形标记主要集中在价格较高的区域。

至此,我们完成了从普通二维图到高维图的扩展。虽然理论上可以继续拓展更多维度,但随着维度增加,图表的可分辨性会逐渐降低。

源码下载地址

原文链接:

https://medium.com/@prasadostwal/multi-dimension-plots-in-python-from-2d-to-6d-9a2bf7b8cc74

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表