python - Clustermap Seaborn 掩盖了矩阵的上对角线,固定每个“单元格”的大小并删除连接每个单元格的线
问题描述
所以我绘制了相关性的聚类图,如果你们能帮助我,我发现了一些挫折。
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
grafico_correlacao_renda_variavel_long_biased = sns.clustermap(correlacao_renda_variavel_long_biased, linewidths=.5,figsize=(40,40),annot= True,mask=mask,annot_kws={"size": 25})
plt.setp(grafico_correlacao_renda_variavel_long_biased.ax_heatmap.get_yticklabels(), rotation=0,fontsize=45)
plt.setp(grafico_correlacao_renda_variavel_long_biased.ax_heatmap.get_xticklabels(), rotation=90,fontsize=45)
grafico_correlacao_renda_variavel_long_biased.fig.suptitle('Renda Variável Long Biased',fontsize=100)
grafico_correlacao_renda_variavel_long_biased.savefig('teste.pdf')
plt.show()
那么我的问题是什么:
1)顶部和底部只显示一半大小,我不知道修复它,我尝试减小大小但它没有做任何事情。
2)虽然我希望地图被聚类,但我不希望地图外的线连接每个“单元格”,有没有办法删除它?
3)我想只显示对角矩阵的下部,但是当我应用蒙版时,它给了我整个矩阵的几个空格
我的面具:面具= np.zeros_like(correlacao_renda_variavel_long_biased,dtype = np.bool)面具[np.triu_indices_from(面具)] =真
解决方案
似乎问题在于 clustermap 正在将掩码与数据一起置换。我对此的解决方案是运行 clustermap 两次:一次找出排列以创建掩码,这样一旦将排列应用于它,就可以恢复实际想要的掩码。然后,使用这个新掩码运行 clustermap。那是:
g = grafico_correlacao_renda_variavel_long_biased #for conciseness
# apply the inverse permutation to the mask
mask = mask[np.argsort(g.dendrogram_row.reordered_ind),:]
mask = mask[:,np.argsort(g.dendrogram_col.reordered_ind)]
# run the clustermap again with the new mask
grafico_correlacao_renda_variavel_long_biased = sns.clustermap(correlacao_renda_variavel_long_biased, linewidths=.5,figsize=(40,40),annot= True,mask=mask,annot_kws={"size": 25})
我希望这不会来得太晚。我刚刚遇到了完全相同的问题并找到了您的问题。
推荐阅读
- php - 通过 Zend_Mail 发送的电子邮件附件不可转发
- google-chrome-extension - 我的 chrome 扩展不显示 short_name 和 default_icon
- vue.js - vue 分离文件中的依赖注入
- php - 显示类别和子类别 (Laravel Blade)
- java - 将 v1 插入 @Path 注释(java 1.6)
- algorithm - 有没有在 (2 ↑ ↑ n) 中运行的算法?
- php - Laravel 防止添加过多的附加关系
- java - 具有单例/原型范围的 Spring 异步执行
- python - 比较文件 A 和 B 中的值的 Python 方法,如果 A 匹配,则从 B 打印整行
- amazon-s3 - 来自 Terraform 的畸形 S3 策略