一种选择是将您的数据分为两组:属于集群一部分且归属度 >= 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_A 和crisp_B 绘制为全色,然后使用cm.hsv 或类似于fuzzy_A 和fuzzy_B 的东西按各自的归属程度进行缩放。