You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python绘制以聚类编号为颜色维度的3D散点图

3D聚类散点图实现方案

下面给你两种常用的实现方式,分别基于Matplotlib(静态)和Plotly(交互式,匹配你提到的示例效果):

方案1:Matplotlib 静态3D散点图

Matplotlib的3D模块可以实现静态3D散点,用c参数指定聚类列来区分颜色:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 假设你的数据集存储在df中
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')

# 绘制3D散点,c=df['clus']用聚类编号区分颜色
scatter = ax.scatter(df['Recency'], df['Frequency'], df['Money'], 
                     c=df['clus'], cmap='viridis', s=50)

# 设置轴标签
ax.set_xlabel('Recency')
ax.set_ylabel('Frequency')
ax.set_zlabel('Money')

# 添加颜色条,标注聚类编号
plt.colorbar(scatter, label='聚类编号')

plt.show()

方案2:Plotly 交互式3D散点图(推荐,符合示例效果)

Plotly的实现更简单,自带交互功能(旋转、缩放、悬停查看数据),和你熟悉的2Dhue逻辑一致,直接用color参数指定聚类列:

import plotly.express as px

# 假设你的数据集存储在df中
fig = px.scatter_3d(df, 
                    x='Recency', y='Frequency', z='Money',
                    color='clus',  # 用聚类编号区分颜色
                    color_continuous_scale='viridis',
                    size_max=10,
                    labels={'clus': '聚类编号'})

# 调整布局,减少空白边距
fig.update_layout(scene=dict(
                    xaxis_title='Recency',
                    yaxis_title='Frequency',
                    zaxis_title='Money'),
                  margin=dict(l=0, r=0, b=0, t=0))

fig.show()

关键说明

  • Matplotlib中,3D散点用c参数替代2D里的hue,cmap可自定义配色方案;
  • Plotly的scatter_3d直接支持color参数,和Seaborn的hue用法完全一致,生成的图表支持交互操作,更适合探索聚类结果。

内容的提问来源于stack exchange,提问作者Avnish Thakkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:36:28