【发布时间】:2019-10-09 01:58:58
【问题描述】:
有没有办法通过脚本从下图中的a 到b?我正在使用seaborn.clustermap() 到达a(即保留行的顺序。但是,列顺序仅在第二高级别更改)。
我想知道是否可以使用seaborn.clustermap() 返回的seaborn.matrix.ClusterGrid,对其进行修改并绘制修改后的结果。
b
P.S. 我问这个的原因是顺序有一个含义(首先是蓝色,接下来是绿色,最后是红色)。
更新: 这是一个生成情况的小数据集:
df = pd.DataFrame([[1, 1.1, 0.9, 1.9, 2, 2.1, 2.8, 3, 3.1],
[1.8, 2, 2.1, 0.7, 1, 1.1, 2.7, 3, 3.3]],
columns = ['d1', 'd2', 'd3',
'l3', 'l2', 'l1',
'b1', 'b2', 'b3'],
index = ['p1', 'p2'])
cg = sns.clustermap(df); ## returns a ClusterGrid
输出是这样的:
我们可以认为以b 开头的列是早餐,l 是午餐,d 是晚餐。现在,订单是breakfast -> dinner -> lunch。我想去breakfast -> lunch -> dinner。
【问题讨论】:
-
你能用代码创建一个小数据集来生成clustermap吗?
-
@ScottBoston:这是一个相当大的数据集,因为它是可见的,所以我已经截断了行。恐怕行数较少,我无法重现目前显示的分离。但我会尽力而为。我会在成功创建问题后立即更新问题。
-
@ScottBoston 我现在添加了一些数据。希望对您有所帮助。
-
您要保留
b1,b2,b3,l1,l2,l3,d1,d2,d3的顺序还是只保留一般顺序b,l,d并且其中的每个子类都由算法排序? -
@Dataman 是的,这一小组数据很有帮助。但是,我无法确定实现您想要的结果的方法。
标签: python matplotlib seaborn hierarchical-clustering