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

聚类数据散点图绘制优化:基于簇中心与聚类结果修正脚本

修正聚类散点图的步骤与代码

你的图表混乱核心问题在于簇中心是随机生成的,完全和实际聚类结果不匹配,另外还有几个细节可以优化,让图表更清晰易读。我来一步步帮你修正:

核心问题拆解

  • 你用np.random.randn(1, 2)生成的簇中心是随机值,和你的聚类结果毫无关联,这直接导致中心位置完全错误,图表自然混乱。
  • 坐标轴标签用了通用的x/y,没有体现实际的特征名称,可读性极差。
  • 没有添加图例,无法区分不同簇和簇中心的含义。

修正后的完整代码

假设你是用K-Means完成的聚类(如果是其他聚类算法,比如层次聚类,簇中心的获取方式只需稍作调整,核心逻辑一致),下面是完整的可运行代码:

# 先确保完成聚类流程(以K-Means为例)
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np

# 提取用于聚类的特征数据
X = df_diabetes_normalizado[['Glicose', 'Massa Corporal']]

# 训练K-Means模型(替换成你确定的最优簇数)
kmeans = KMeans(n_clusters=你的最优簇数, random_state=42)
df_diabetes_normalizado['clusters'] = kmeans.fit_predict(X)

# 获取真实的簇中心(这是解决问题的关键!)
centers = kmeans.cluster_centers_

# 提取绘图变量
x = df_diabetes_normalizado['Glicose']
y = df_diabetes_normalizado['Massa Corporal']
Cluster = df_diabetes_normalizado['clusters']

# 绘制散点图
fig = plt.figure(figsize=(14,9))
ax = fig.add_subplot(111)

# 绘制数据点,按簇分配颜色,添加透明度让重叠点更清晰
scatter = ax.scatter(x, y, c=Cluster, s=50, cmap='viridis', alpha=0.7)

# 绘制簇中心,用大号红色加号标记,确保显眼
ax.scatter(centers[:, 0], centers[:, 1], s=200, c='red', marker='+', label='簇中心')

# 设置坐标轴标签(用实际特征名,提升可读性)
ax.set_xlabel('Glicose', fontsize=12)
ax.set_ylabel('Massa Corporal', fontsize=12)

# 添加图例:自动生成簇的标签,同时标记簇中心
handles, labels = scatter.legend_elements(title='簇')
ax.legend(handles=handles + [plt.Line2D([], [], marker='+', color='red', linestyle='', markersize=15)],
          labels=labels + ['簇中心'], loc='upper right')

# 显示图表(plt.show()比fig.show()兼容性更好)
plt.show()

关键优化点说明

  1. 使用真实簇中心:通过聚类模型的cluster_centers_属性获取每个簇的真实中心,彻底解决中心位置错误的问题。
  2. 视觉与可读性优化:用实际特征名作为坐标轴标签,添加透明度让重叠数据点更清晰,选用友好的颜色映射viridis。
  3. 图例完善:自动生成簇的图例,同时给簇中心单独标记,让图表信息一目了然。
  4. 兼容性提升:用plt.show()替代fig.show(),在Python脚本、Jupyter Notebook等不同环境下都能正常显示。

如果你的聚类算法不是K-Means,比如层次聚类,只需把获取簇中心的步骤换成计算每个簇的均值即可,核心逻辑保持不变。

内容的提问来源于stack exchange,提问作者Caio Euzébio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:53:55