如何在Python中创建Seaborn相关热图?
在数据集中,两个变量之间的相关性的强度和方向通过相关热图图形显示,该图表描述了相关矩阵。它是在大型数据集中查找模式和联系的有效技术。
Python数据可视化工具箱Seaborn为生成统计视觉提供了简单的实用工具。由于具备创建相关热图的功能,用户可以快速查看数据集的相关矩阵。
在构建相关热图前,我们必须导入数据集,计算变量的相关矩阵,然后使用Seaborn热图函数生成热图。热图显示了一个具有颜色的矩阵,用于指示变量之间的相关程度。此外,用户还可以在热图上显示相关系数。
Seaborn相关热图是一种有效的可视化技术,用于检查数据集中的模式和关系,并可用于确定进一步研究的关键变量。
使用Heatmap()函数
heatmap函数生成一个彩色矩阵,用于表示数据集中两对变量之间的相关性。heatmap函数需要我们提供变量的相关性矩阵,这可以使用Pandas数据帧的corr方法来计算。heatmap函数提供了广泛的可选项,使用户可以更改热图的视觉外观,包括颜色方案,注释,绘图大小和位置等等。
语法
import seaborn as sns
sns.heatmap(data, cmap=None, annot=None)
上述函数中的参数data是表示输入数据集的相关性矩阵。要用于着色热图的颜色图称为cmap。
示例1
在此示例中,我们在Python中创建了一个Seaborn相关热图。首先,我们导入Seaborn和Matplotlib库,并使用Seaborn的load dataset函数加载鸢尾花数据集,该数据集包括SepalLength、SepalWidth、PetalLength和PetalWidth变量。鸢尾花数据集包括鸢尾花的花萼长度,花萼宽度,花瓣长度和花瓣宽度的测量结果。以下是示例的信息−
序号 | 萼片长度 | 萼片宽度 | 花瓣长度 | 花瓣宽度 | 物种 |
---|---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
1 | 4.9 | 3.0 | 1.4 | 0.2 | Setosa |
2 | 4.7 | 3.2 | 1.3 | 0.2 | Setosa |
3 | 4.6 | 3.1 | 1.5 | 0.2 | Setosa |
4 | 5.0 | 3.6 | 1.4 | 0.2 | setosa |
用户可以使用Seaborn的load dataset方法将鸢尾花数据集加载到Pandas DataFrame中。然后使用Pandas数据帧的corr方法计算变量的相关矩阵,并将其保存在一个名为corr_matrix的变量中。我们使用Seaborn的heatmap方法生成热图。我们将相关矩阵corr_matrix传递给函数,并将cmap参数设置为“coolwarm”以使用不同的颜色来表示正面和负面的相关性。最后,我们使用来自Matplotlib的pyplot模块的show方法显示热图。
# 必要的库
import seaborn as sns
import matplotlib.pyplot as plt
# 将鸢尾花数据集加载到Pandas数据框架中
iris_data = sns.load_dataset('iris')
# 创建鸢尾花数据集的相关矩阵
iris_corr_matrix = iris_data.corr()
print(iris_corr_matrix)
# 使用Seaborn的“heatmap”函数创建热力图
sns.heatmap(iris_corr_matrix, cmap='coolwarm', annot=True)
# 使用matplotlib的“pyplot”模块的“show”方法来显示热力图
plt.show()
输出
sepal_length sepal_width petal_length petal_width
sepal_length 1.000000 -0.117570 0.871754 0.817941
sepal_width -0.117570 1.000000 -0.428440 -0.366126
petal_length 0.871754 -0.428440 1.000000 0.962865
petal_width 0.817941 -0.366126 0.962865 1.000000
示例 2
在这个例子中,我们再次在Python中创建一个Seaborn相关热图。我们首先导入Seaborn和Matplotlib库,并使用Seaborn的加载数据集函数加载钻石数据集。钻石数据集包括有关钻石成本和特征的详细信息,包括它们的克拉重量,切割,颜色和清晰度。这是一个关于信息的例子 −
序号 | 克拉 | 切割 | 颜色 | 清晰度 | 深度 | Table | 价格 | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0.23 | 理想 | E | SI2 | 61.5 | 55.0 | 326 | 3.95 | 3.98 | 2.43 |
1 | 0.21 | 高级 | E | SI1 | 59.8 | 61.0 | 326 | 3.89 | 3.84 | 2.31 |
2 | 0.23 | 良好 | E | VS1 | 56.9 | 65.0 | 327 | 4.05 | 4.07 | 2.31 |
3 | 0.29 | 高级 | I | VS2 | 62.4 | 58.0 | 334 | 4.20 | 4.23 | 2.63 |
4 | 0.31 | 良好 | J | SI2 | 63.3 | 58.0 | 335 | 4.34 | 4.35 | 2.75 |
可以使用Seaborn的加载数据集函数将钻石数据集加载到Pandas DataFrame中。接下来,使用Pandas dataframe的corr方法计算变量的相关矩阵,并将其存储在名为diamond_corr_matrix的变量中。为了利用不同的颜色表示正负相关性,我们将相当矩阵传递给函数,并将cmap选项设置为“coolwarm”。最后,我们使用matplotlib的pyplot模块的show方法来显示热力图。
# 需要的库
import seaborn as sns
import matplotlib.pyplot as plt
# 将钻石数据集加载到Pandas dataframe中
diamonds_data = sns.load_dataset('diamonds')
# 计算变量的相关系数矩阵
diamonds_corr_matrix = diamonds_data.corr()
print(diamonds_corr_matrix)
# 使用Seaborn的`heatmap`函数创建热力图
sns.heatmap(diamonds_corr_matrix, cmap='coolwarm', annot=True)
# 使用matplotlib的`pyplot`模块中的`show`方法显示热力图。
plt.show()
输出
carat depth table price x y z
carat 1.000000 0.028224 0.181618 0.921591 0.975094 0.951722 0.953387
depth 0.028224 1.000000 -0.295779 -0.010647 -0.025289 -0.029341 0.094924
table 0.181618 -0.295779 1.000000 0.127134 0.195344 0.183760 0.150929
price 0.921591 -0.010647 0.127134 1.000000 0.884435 0.865421 0.861249
x 0.975094 -0.025289 0.195344 0.884435 1.000000 0.974701 0.970772
y 0.951722 -0.029341 0.183760 0.865421 0.974701 1.000000 0.952006
z 0.953387 0.094924 0.150929 0.861249 0.970772 0.952006 1.000000
热力图是一种有益的图形表示方法,Seaborn使其使用变得简单和易于使用。