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

如何在PyQt5的pyqtgraph绘图组件中展示带聚类颜色的K-Means散点图?

没问题,我来帮你实现K-Means聚类结果的颜色区分展示!你的现有代码把所有数据点都用同一种样式绘制了,所以看不到聚类差异。我们只需要按聚类标签分组数据,然后给每个聚类分配不同的颜色即可。

下面是修改后的完整代码,我会一步步解释:

from sklearn.cluster import KMeans
import pyqtgraph as pg

clusters = 3
kmeans = KMeans(n_clusters=clusters, init='k-means++')
kmeans.fit(Data4)
y_means = kmeans.predict(Data4)

# 为每个聚类定义不同的颜色,这里用了红、绿、蓝,你也可以换成其他颜色比如'#FFA500'(橙色)
cluster_colors = [pg.mkColor('red'), pg.mkColor('green'), pg.mkColor('blue')]

# 循环遍历每个聚类标签,分别绘制对应的数据点
for label in range(clusters):
    # 筛选出当前聚类的所有数据点
    # 注意:这里假设Data4是(样本数, 特征数)的二维数组,如果你的Data4是(特征数, 样本数),请看下面的注释调整
    cluster_samples = Data4[y_means == label]
    # 提取该聚类的两个特征作为x和y轴数据
    x_data = cluster_samples[:, 0]
    y_data = cluster_samples[:, 1]
    
    # 如果你的Data4是(特征数, 样本数)的结构(比如原来的代码用Data4[0]取所有x点),替换上面两行为:
    # x_data = Data4[0][y_means == label]
    # y_data = Data4[1][y_means == label]
    
    # 绘制当前聚类的散点,指定填充颜色
    self.graphWidget1.plot(x_data, y_data, pen=None, symbol='o', symbolBrush=cluster_colors[label])

关键说明:

  • symbolBrush参数用来设置散点的填充颜色,给每个聚类分配不同颜色后,就能直观区分不同聚类了
  • 如果需要给散点加上清晰的边框,可以额外添加symbolPen=pg.mkColor('black')参数
  • 颜色可以自由调整,pyqtgraph支持多种格式:颜色名称('red')、RGB元组(255,0,0)或者十六进制字符串'#FF0000'都可以

这样修改后,你的散点图就会按K-Means的聚类结果显示不同颜色啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 13:37:52