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()
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()