【问题标题】:How to plot HAC result as scatter plot (scipy linkage)如何将 HAC 结果绘制为散点图(scipy 链接)
【发布时间】:2016-12-16 18:31:17
【问题描述】:

我正在使用scipy 链接进行聚类。我想知道将结果绘制成散点图的最简单方法是什么:

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

from scipy.cluster.hierarchy import dendrogram, linkage 
from sklearn.manifold import MDS

n = 10
X = [np.random.rand(10) + 1 for i in range(n)]
X = np.concatenate((X, [np.random.rand(10) - 1 for i in range(n)]), 0)

mds = MDS(n_components=2)
X_r = mds.fit(X).embedding_  

# Plot MDS result
plt.figure(figsize=(5,5))
plt.title("MDS")
plt.scatter(X_r[:,0], X_r[:, 1])

lnk = linkage(X)

# Plot dendogram
plt.figure(figsize=(5,5))
plt.title("Dendogram")
dendrogram(lnk)

# Plot 'lnk' into scatter plot ..

结果

缺少的是另一个反映集群分配的彩色 MDS 图。

【问题讨论】:

    标签: python matplotlib plot scipy


    【解决方案1】:

    假设有两个集群,您可以使用fclusterlnk

    # Plot 'lnk' into scatter plot ..
    from scipy.cluster.hierarchy import fcluster
    fc = fcluster(lnk, 2, criterion='maxclust')
    plt.figure(figsize=(5,5))
    plt.scatter(X_r[:,0],X_r[:,1],c=fc)
    

    然后绘制一个以 c 为颜色的散点图。这给出了,

    【讨论】:

    • 嗯,但是它没有用linkage分配的标签着色:/或者我如何在那里设置颜色阈值?
    • 好的,知道了!谢谢:)
    猜你喜欢
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    相关资源
    最近更新 更多