如何在python中绘制重叠簇

Posted

技术标签:

【中文标题】如何在python中绘制重叠簇【英文标题】:How to plot overlapping clusters in python 【发布时间】:2013-07-19 09:41:33 【问题描述】:

我正在尝试绘制从模糊 C 均值聚类算法获得的聚类的可视化。对于通过 k-means 获得的清晰集群,通过正常的散点图(例如通过 matplotlib 获得的散点图)很容易可视化。是否有推荐的方法来绘制模糊集群以可视化重叠?如果是,如何?

【问题讨论】:

你能给我们展示一个你试图生成的情节的例子吗? 【参考方案1】:

一种选择是将您的数据分为两组:属于集群一部分且归属度 >= X 的点和小于 X 的点。将归属度 >= X 的点称为清晰组。对于那些小于 X 的人,您可以为每个不同的集群创建组,称这些为模糊组。每个模糊组都将具有不在清晰组中的所有数据点。

现在,当您进行绘图时,为每个集群分配一种颜色,假设您有三个集群 A、B 和 C。为它们分配蓝色、绿色和红色颜色。以 100% 的不透明度绘制清晰组的组颜色,然后为每个模糊组查看点的归属程度,并以集群颜色的一些缩小的不透明度绘制它们。

由于您必须为每个模糊组作为一个整体分配颜色,因此最好将它们“分类”为按归属程度的直方图,或者您可以一起跳过所有组并单独绘制每个点。

例如假设我们有 2 个集群 A 和 B,并且

data = [(0.2,0.8),(0.5,0.5),(0.65,0.35),(0.25,0.75)]

其中数据代表我们每个点的归属程度(A,B)(我不会列出其坐标,但假设它们可以用ptn 表示)。那么如果 X 是 0.7,我们会做 crisp_A = [pt1]crisp_B = [pt4]。然后fuzzy_A = [pt2, pt3]fuzzy_B = [pt2,pt2]。将crisp_Acrisp_B 绘制为全色,然后使用cm.hsv 或类似于fuzzy_Afuzzy_B 的东西按各自的归属程度进行缩放。

【讨论】:

以上是关于如何在python中绘制重叠簇的主要内容,如果未能解决你的问题,请参考以下文章

如何在 R 中绘制时间序列簇? [复制]

如何在MATLAB中绘制曲线簇及其包络曲线

如何使用matlab在K-means算法后绘制具有不同颜色簇的PCA散点图?

如何绘制两个相互重叠的图形?

如何调整包含绘图的 div 以绘制尺寸,使其不与文档重叠

如何使用 python opencv 将重叠的卡片彼此分开?