如何在 seaborn 中创建三角相关热力图?


在本教程中,我们将学习如何在 seaborn 中创建三角相关热力图;顾名思义,相关性是一种衡量变量之间相关程度的指标。相关性热力图是一种使用不同颜色表示数值变量之间关系的图表。这些图表用于理解哪些变量彼此相关以及它们之间关系的强度。而热力图是使用不同颜色对数据进行二维图形表示。

Seaborn 是一个用于数据可视化的 Python 库。它在创建统计图表方面很有用。它建立在 matplotlib 之上,并与 Pandas 数据结构紧密集成。它提供了多个图表来表示数据。借助 Pandas,我们可以创建吸引人的图表。在本教程中,我们将说明三个创建三角热力图的示例。最终,我们将学习使用 Seaborn 库创建令人惊叹且信息丰富的热力图。

语法

这是创建三角相关热力图的语法。

sns.heatmap(df.corr(),annot=True,fmt=".2f,mask=np.triu(np.ones_like(df.corr(),dtype=bool)))

在此语法中,我们使用 sns.heatmap() 创建了一个热力图。然后,我们使用 'df.corr()' 将 DataFrame 'df' 的相关矩阵传递进去。我们还设置 'annot=True' 以在热力图上显示相关值,'fmt=".2f"' 将值格式化为小数点后两位,以及 'mask=np.triu(np.ones_like(df.corr(), dtype=bool))' 来掩盖热力图的上三角部分。这使得热力图呈三角形,只显示表示唯一相关性的下三角部分。

示例 1

这是一个使用 'tips' 作为数据集的示例。它包含有关餐厅服务员收到的小费的信息。它包括诸如总账单、用餐人数和小费金额等变量。接下来,我们使用 Seaborn 的 'load_dataset()' 函数加载 Tips 数据集,并使用数据集上的 'corr()' 方法创建相关矩阵。然后,我们使用 Seaborn 的 'heatmap()' 函数创建了一个三角相关热力图。最后,我们设置了属性并将地图的颜色设置为 'spring',并使用 'plt.show()' 函数绘制它。生成的热力图显示了总账单、小费和人数变量之间的相关性。

import seaborn as sns
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
tips = sns.load_dataset("tips")
corr = tips.corr()
mask = np.zeros_like(corr, dtype=np.bool_)
mask[np.triu_indices_from(mask)] = True
sns.heatmap(corr, mask=mask, cmap='spring', annot=True)
plt.show()

输出

示例 2

在这个例子中,我们使用的是 'titanic' 数据集,这是一个用于机器学习和统计的数据集,其中包含有关泰坦尼克号乘客的信息,包括他们的年龄、性别、票价等级以及他们是否幸存。首先,我们使用 Seaborn 的 'load_dataset()' 函数加载 Titanic 数据集,并使用数据集上的 'corr()' 方法创建相关矩阵。然后,我们使用 Seaborn 的 'heatmap()' 函数创建一个三角相关热力图并设置其属性。最后,我们使用 Matplotlib 的 'show()' 函数显示它。生成的热力图显示了年龄、票价和等级变量之间的相关性。

import seaborn as sns
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
titanic = sns.load_dataset("titanic")
corr = titanic.corr()
mask = np.zeros_like(corr, dtype=np.bool_)
mask[np.triu_indices_from(mask)] = True
sns.heatmap(corr, mask=mask, cmap='copper', annot=True)
plt.show()

输出

示例 3

在这个例子中,我们使用的是 Iris 数据集,这是另一个用于机器学习和统计的经典数据集。它包含三种鸢尾花(Setosa、Versicolor 和 Virginica)的花萼长度、花萼宽度、花瓣长度和花瓣宽度的测量值。首先,我们使用 'Seaborn's load_dataset()' 函数加载 Iris 数据集,并使用数据集上的 'corr()' 方法创建相关矩阵。然后,我们使用 Seaborn 的 'heatmap()' 函数创建了一个三角相关热力图,并使用 Matplotlib 的 'show()' 函数显示它。生成的热力图显示了花萼长度、花萼宽度、花瓣长度和花瓣宽度变量之间的相关性。

import seaborn as sns
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
# Load the Iris dataset
iris = sns.load_dataset("iris")
# Create a correlation matrix
corr = iris.corr()
# Create a heatmap using Seaborn
mask = np.zeros_like(corr, dtype=np.bool_)
mask[np.triu_indices_from(mask)] = True
sns.heatmap(corr, mask=mask, cmap='coolwarm', annot=True)
plt.show()

输出

我们了解到,Seaborn 是 Python 中一个强大的数据可视化库,它提供了各种函数来创建不同类型的可视化,包括热力图,热力图是可视化数据集变量之间相关性的有用方法,尤其是在变量数量较多时。此外,Seaborn 的 'heatmap()' 函数允许我们自定义调色板并在热力图上显示相关系数,分别使用 cmap 和 annot 参数。它还提供了一些内置数据集来练习数据可视化,例如 Iris 数据集、Titanic 数据集和 Tips 数据集。使用 Seaborn 创建热力图对于必须探索和理解大型数据集中的相关性的数据科学家和分析师非常有用。借助这些热力图,数据科学家和分析师可以深入了解他们的数据,并根据他们的发现做出明智的决策。

更新于: 2023-05-11

1K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.