【发布时间】:2022-08-19 14:32:52
【问题描述】:
如果我正在使用sns.clustermap 绘制(相关)数据框,它会自动将数据框多索引作为标签并将它们绘制在集群图的正下方。
如何访问这些标签?我正在使用 clustermaps 作为大型数据集(100-200 个条目)的探索工具,我需要各种集群中条目的名称。
例子:
elev = [1, 100, 10, 1000, 100, 10]
number = [1, 2, 3, 4, 5, 6]
name = [\'foo\', \'bar\', \'baz\', \'qux\', \'quux\', \'quuux\']
idx = pd.MultiIndex.from_arrays([name, elev, number],
names=(\'name\',\'elev\', \'number\'))
data = np.random.rand(20,6)
df = pd.DataFrame(data=data, columns=idx)
clustermap = sns.clustermap(df.corr())
给
现在我会说有两个不同的集群:前两行和后四行,所以[foo-1-1, bar-100-2] 和[baz-10-3, qux-1000-4, quux-100-5, quuux-10-6]。
如何提取这些(或整个[foo-1-1, bar-100-2, baz-10-3, qux-1000-4, quux-100-5, quuux-10-6] 列表)?拥有 100 多个条目,仅手动将它们写下来并不是一个真正的选择。
documentation 提供 clustergrid.dendrogram_row.reordered_ind 但这只是给了我原始数据框中的索引号。但我正在寻找更像df.columns 的输出的东西
使用this 在我看来,我正朝着正确的方向前进,但是当我让它自动形成集群时,我只能提取给定行所属的集群,但我想定义集群我自己,视觉上。
-
无论如何,我已经找到了其中的大多数,但它们似乎没有涵盖我的问题,但似乎我在第一次阅读时忽略的
ax_heatmap.yaxis.get_majorticklabels()可能适合。如果那是我需要的,明天会检查。