在 Seaborn 中将相关矩阵绘制为热图时,是不是可以删除重复的列/行?

     2023-03-12     106

关键词:

【中文标题】在 Seaborn 中将相关矩阵绘制为热图时,是不是可以删除重复的列/行?【英文标题】:Is it possible to remove repeated columns/rows when plotting correlation matrix as heatmap in Seaborn?在 Seaborn 中将相关矩阵绘制为热图时,是否可以删除重复的列/行? 【发布时间】:2020-02-19 10:11:40 【问题描述】:

给定下一个数据帧

my_df.head()



cruce1  cruce2  cruce3  cruce4  cruce5  cruce6  cruce7  cruce8  cruce9  cruce10 ... factor75    factor80    factor85    factor90    factor95    factor100   factor105   factor110   factor115   factor120
Date                                                                                    
1993-10-28  0.0049  NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 161.75  172.45  196.86  200.33  219.21  222.67  243.23  235.77  249.48  231.56
1993-10-29  0.0002  0.0051  NaN NaN NaN NaN NaN NaN NaN NaN ... 169.13  172.64  211.90  205.58  218.63  223.16  250.21  245.71  256.47  245.63
1993-11-01  0.0041  0.0043  0.0092  NaN NaN NaN NaN NaN NaN NaN ... 165.37  170.35  215.84  198.81  216.43  222.32  246.18  247.09  253.57  254.07
1993-11-02  -0.0019 0.0022  0.0024  0.0073  NaN NaN NaN NaN NaN NaN ... 175.01  180.37  219.77  210.89  210.06  236.31  249.19  260.01  252.05  259.16
1993-11-03  0.0023  0.0004  0.0045  0.0047  0.0096  NaN NaN NaN NaN NaN ... 183.84  177.68  210.58  207.35  207.67  228.06  235.10  254.71  251.55  258.43

使用此列:

my_df.head()

Index(['cruce1', 'cruce2', 'cruce3', 'cruce4', 'cruce5', 'cruce6', 'cruce7',
       'cruce8', 'cruce9', 'cruce10', 'cruce11', 'cruce12', 'cruce13',
       'cruce14', 'cruce15', 'cruce16', 'cruce17', 'cruce18', 'cruce19',
       'cruce20', 'factor1', 'factor5', 'factor10', 'factor15', 'factor20',
       'factor25', 'factor30', 'factor35', 'factor40', 'factor45', 'factor50',
       'factor55', 'factor60', 'factor65', 'factor70', 'factor75', 'factor80',
       'factor85', 'factor90', 'factor95', 'factor100', 'factor105',
       'factor110', 'factor115', 'factor120'],
      dtype='object')

我制作了相关矩阵的热图

corr = my_df.diff().corr()

mask = np.zeros_like(corr)
mask[np.triu_indices_from(mask)] = True

sns.heatmap(corr, mask=mask, linewidths=0.1, vmax=1.0, 
                    square=False, cmap=colormap, linecolor='white')

下一个结果:

热图 1:

但我只想保留热图中的不同列:

热图 2:

有可能吗?而且,如果是的话,是否可以通过使生成的正方形填充空白空间来完成?

【问题讨论】:

【参考方案1】:

我解决了。

我不得不改变

corr = my_df.diff().corr()

收件人:

corr = df.diff().corr().filter(regex = 'cruce', axis=1).filter(regex = 'factor', axis=0)

线

filter(regex = 'cruce', axis=1)

用于从轴 1(逐行)中删除所有包含 'cruce' 的列,而行

filter(regex = 'factor', axis=0)

从轴 0 中删除所有包含“因子”的列(按列)。

更多内容在pandas doc

然后,移除掩码设置:

sns.heatmap(corr, linewidths=0.1, vmax=1.0, square=False, cmap=colormap, linecolor='white')

我们得到下一个结果: Solution

【讨论】:

您可以通过为以下部分.filter(regex = 'cruce', axis=1).filter(regex = 'factor', axis=0) 提供解释或至少提供文档链接来大大改进您的答案。 完成。现在,有了更好的解释。

如何为 seaborn 的热图或相关矩阵设置动画?

】如何为seaborn的热图或相关矩阵设置动画?【英文标题】:Howtoanimateaseaborn\'sheatmaporcorrelationmatrix?【发布时间】:2016-02-1723:48:37【问题描述】:我对python比较陌生(来自Matlab)。作为一个项目,我试图随着时间的推移创建相关矩... 查看详情

Seaborn 热图相关性不适合注释数字

】Seaborn热图相关性不适合注释数字【英文标题】:SeabornHeatmapcorrelationwon\'tfitannotationdigits【发布时间】:2021-12-2301:54:37【问题描述】:我正在尝试使用seaborn热图绘制三角相关矩阵,但单元格不适合注释数字。知道如何让它们很... 查看详情

重叠 yticklabels:是不是可以控制 seaborn 中热图的单元格大小?

】重叠yticklabels:是不是可以控制seaborn中热图的单元格大小?【英文标题】:Overlappingyticklabels:Isitpossibletocontrolcellsizeofheatmapinseaborn?重叠yticklabels:是否可以控制seaborn中热图的单元格大小?【发布时间】:2016-05-0918:00:00【问题描... 查看详情

在 seaborn 中自定义相关热图

】在seaborn中自定义相关热图【英文标题】:customisecorrelationheatmapinseaborn【发布时间】:2020-05-1510:00:57【问题描述】:我是python新手,我正在尝试在seaborn上制作相关热图。谁能告诉我如何使用我自己的相关截止值自定义热图右侧... 查看详情

使用seaborn在python中绘制3列的热图

】使用seaborn在python中绘制3列的热图【英文标题】:Plottingheatmapfor3columnsinpythonwithseaborn【发布时间】:2017-11-1219:06:00【问题描述】:v1v2yy15.2544.34100.0083.0559.78100.0096.6165.09100.00100.0075.47100.00100.0050.00100.00100.0068.87100.00100.00 查看详情

seaborn 热图显示轴标签,但当 df.corr 为 NaN 时没有值

】seaborn热图显示轴标签,但当df.corr为NaN时没有值【英文标题】:seabornheatmapdisplaysaxislabels,butnovalueswhendf.corrisNaN【发布时间】:2021-12-2006:27:41【问题描述】:我正在尝试为相关性提供热图,但我意识到有些是错误的。下面是我的... 查看详情

带有日期时间轴的 Seaborn 热图

】带有日期时间轴的Seaborn热图【英文标题】:SeabornHeatmapwithDatetimeAxes【发布时间】:2018-08-1000:46:18【问题描述】:我创建一个热图,其中x轴为年份,y轴为月份。在热图中将是%返回。这就是我所追求的。所以我有一些数据,我... 查看详情

Seaborn 热图未显示从字符串转换为数字的列

】Seaborn热图未显示从字符串转换为数字的列【英文标题】:Seabornheatmapnotshowingcolumnsconvertedfromstringtonumerical【发布时间】:2018-12-1408:12:26【问题描述】:我有一个12列的pandas数据框。使用seaborn的热图绘制时,仅显示9列。其中三个... 查看详情

如何在seaborn中将多个图形绘制为数据框的子图和多列?

】如何在seaborn中将多个图形绘制为数据框的子图和多列?【英文标题】:Howtoplotmultiplefiguresassubplotsandmultiplescolumnsofadataframeinseaborn?【发布时间】:2021-03-0917:09:54【问题描述】:我一直试图在子图中绘制我的数据框的所有列,但... 查看详情

根据 Seaborn 中的散点图绘制热图

】根据Seaborn中的散点图绘制热图【英文标题】:PlottingaheatmapbasedonascatterplotinSeaborn【发布时间】:2022-01-2118:02:50【问题描述】:有什么方法可以根据散点图在seaborn中绘制热图?例如,我有以下散点图,并希望以这样的方式绘制... 查看详情

如何理解 Seaborn 的热图标注格式?

】如何理解Seaborn的热图标注格式?【英文标题】:howtounderstandSeaborn\'sheatmapannotationformat?【发布时间】:2019-06-2715:10:00【问题描述】:我正在寻找一种方法,通过指定fmt关键字,在seaboarn的热图中将“0.0045”显示为“0.45%”:sns.he... 查看详情

保存为 pdf 时删除 seaborn 热图中的单元格分隔线

】保存为pdf时删除seaborn热图中的单元格分隔线【英文标题】:Removelinesseparatingcellsinseabornheatmapwhensavedaspdf【发布时间】:2015-01-1808:54:09【问题描述】:我想删除在保存的pdf中分隔单元格的行。我尝试设置linewidth=0.0,但线条仍然... 查看详情

使用 python seaborn 仅在某些值之间设置热图相关性

】使用pythonseaborn仅在某些值之间设置热图相关性【英文标题】:UsepythonseaborntosetHeatmapcorrelationsONLYbetweencertainvalues【发布时间】:2021-04-2317:31:34【问题描述】:我有一些塑料挤出机的数据,我正在寻找其中的模式。我可以使用this... 查看详情

Seaborn 热图未显示所有 xticks 和 yticks

】Seaborn热图未显示所有xticks和yticks【英文标题】:Seabornheatmapnotdisplayingallxticksandyticks【发布时间】:2018-11-1803:36:50【问题描述】:我有一个形状为(39,67)的熊猫数据框。当我绘制seaborn热图时,我在X轴和Y轴上没有得到那么多标签... 查看详情

Seaborn 热图阴谋失败

】Seaborn热图阴谋失败【英文标题】:Seabornheatmaptoplotlyfailed【发布时间】:2018-02-0717:42:41【问题描述】:将seaborn.heatmap图形转换为plotly时,我遇到了plotly错误。我正在使用以下代码在jupyter笔记本中执行此操作:%matplotlibinlineimportn... 查看详情

创建 seaborn 热图时“无法将字符串转换为浮点数”ValueError

】创建seaborn热图时“无法将字符串转换为浮点数”ValueError【英文标题】:Whencreatingaseabornheatmap\'couldnotconvertstringtofloat\'ValueError【发布时间】:2021-12-2207:47:53【问题描述】:大家好,我有以下数据框,我想使用以下代码从中创建... 查看详情

如何修复 matplotlib 和 seaborn 热图?

】如何修复matplotlib和seaborn热图?【英文标题】:Howtofixmatplotlibandseabornheatmapplot?【发布时间】:2017-09-2903:45:11【问题描述】:我使用Seaborn和Matplotlib绘制了一张热图。在Matplotlib中,刻度的名称是可以的,但我不喜欢出现的白线。... 查看详情

如何反转seaborn热图颜色条的颜色

】如何反转seaborn热图颜色条的颜色【英文标题】:Howtoinvertcolorofseabornheatmapcolorbar【发布时间】:2018-05-0718:34:48【问题描述】:我使用热图来可视化混淆矩阵。我喜欢标准颜色,但我希望浅橙色为0,深紫色为最高值。我设法只使... 查看详情