Python Scipy树状图的简单着色

Python Scipy树状图的简单着色,python,scipy,hierarchical-clustering,Python,Scipy,Hierarchical Clustering,我正在尝试使用Scipy创建单色(如黑白)树状图。在Scipy文档之后,我一直在使用set_link_color_pallete函数,但是只得到一个黑色的组,而树状图的其余部分是蓝色的(参见下图) 以下是我的测试代码: import numpy as np import matplotlib.pyplot as plt from scipy.cluster import hierarchy ytdist = np.array([662., 877., 255., 412., 996., 295

我正在尝试使用Scipy创建单色(如黑白)树状图。在Scipy文档之后,我一直在使用set_link_color_pallete函数,但是只得到一个黑色的组,而树状图的其余部分是蓝色的(参见下图)

以下是我的测试代码:

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

ytdist = np.array([662., 877., 255., 412., 996., 295., 468., 268.,
                    400., 754., 564., 138., 219., 869., 669.])
Z = hierarchy.linkage(ytdist, 'single')
hierarchy.set_link_color_palette(['k', 'k', 'k', 'k', 'k'])
dn = hierarchy.dendrogram(Z)
plt.show()

这是一个应该解决这个问题的问题,但我不能非常清楚地理解它


有什么提示或建议吗

一种简单的方法是在
0
处设置
颜色阈值,然后将
高于阈值的颜色设置为
'k'
,如下所示:

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

ytdist = np.array([662., 877., 255., 412., 996., 295., 468., 268.,
                    400., 754., 564., 138., 219., 869., 669.])
Z = hierarchy.linkage(ytdist, 'single')
dn = hierarchy.dendrogram(Z, color_threshold=0, above_threshold_color='k')
plt.show()

谢谢!这正是我需要的!我不知道函数dendrogram()中的color_threshold和over_threshold_color参数。干杯