scipy.cluster.hierarchy.dendrogram():truncate_mode='level' 到底是做什么的?

scipy.cluster.hierarchy.dendrogram(): exactly what does truncate_mode='level' do?

documentation 表示,“显示的树状图树的级别不超过 p。“级别”包括上次合并后具有 p 合并的所有节点。” (p 是另一个参数)我不知道“p 从上次合并合并”是什么意思。谁能解释一下?

(我用 truncate_mode='level'truncate_mode='lastp' 创建了相同数据的树状图;我没有发现比较有启发性。)

下面的代码演示了truncate_mode='level'truncate_mode='lastp'

from scipy.cluster import hierarchy
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(1729)
ytdist = np.random.randint(1, 1000, 36)

Z = hierarchy.linkage(ytdist, 'single')
fig, ax_rows = plt.subplots(ncols=6, nrows=2, sharey=True, figsize=(16, 5))

for ax_row, truncate_mode in zip(ax_rows, ['level', 'lastp']):
    hierarchy.dendrogram(Z, ax=ax_row[0])
    ax_row[0].set_title('default, no truncation')
    for ind, ax in enumerate(ax_row[1:]):
        if truncate_mode == 'level':
            p = len(ax_row) - ind - 1
        else:
            p = len(ax_row) - ind
        hierarchy.dendrogram(Z, truncate_mode=truncate_mode, p=p, ax=ax)
        ax.set_title(f"truncate_mode='{truncate_mode}', p={p}")
plt.tight_layout()
plt.show()