如何在 seaborn – Python中创建三角形相关热图?
Seaborn 是一个基于 matplotlib 的Python库,用于数据可视化。它提供了一种以统计图形格式呈现数据的媒介,作为传递某些信息的信息丰富且有吸引力的媒介。热图是 seaborn 支持的组件之一,其中使用调色板描绘相关数据的变化。本文主要关注相关热图以及如何将 seaborn 与 pandas 和 matplotlib 结合使用来为数据帧生成热图。
安装
像任何其他Python库一样,seaborn 可以使用 pip 轻松安装:
pip install seaborn
该库是 Anaconda 发行版的一部分,如果您的 IDE 受 Anaconda 支持,通常只需通过导入即可工作,但也可以通过以下命令安装:
conda install seaborn
三角相关热图
相关热图是显示两个离散维度之间的二维相关矩阵的热图,使用彩色单元格来表示通常来自单色标度的数据。第一个维度的值显示为表的行,而第二个维度的值显示为列。单元格的颜色与与维度值匹配的测量值数量成正比。这使得相关热图成为数据分析的理想选择,因为它使模式易于阅读并突出显示相同数据中的差异和变化。相关热图,就像常规热图一样,由颜色条辅助,使数据易于阅读和理解。
相关热图是数据的矩形表示,它重复相同的数据描述两次,因为类别在两个轴上重复进行计算分析。因此,两次获得相同的结果。仅呈现一次数据而不重复的相关热图,即类别仅相关一次,称为三角形相关热图。由于数据在从左上角到右下角的对角线上对称,因此获得三角形相关热图的想法是删除其上方的数据,以便仅描绘一次。对角线上的元素是相同类型的类别相关的部分。
将使用 seaborn 模块的热图绘制方法。与该掩码一起,将传递参数。 Mask 是一个热图属性,它将数据帧或布尔数组作为参数,并仅显示那些标记为 False 或提供掩码为 False 的位置。
句法:
heatmap(data, vmin, vmax, center, cmap,……………………………………………………)
除了 data 所有其他属性都是可选的, data 显然将是要绘制的数据。这里的数据必须通过 corr() 方法传递以生成相关热图。此外, corr() 本身会消除在生成相关热图时无用的列并选择可以使用的列。
对于屏蔽,这里正在生成一个使用 NumPy 的数组,如下所示:
np.triu(np.ones_like())
首先,NumPy 模块的ones_like() 方法将生成一个大小与我们要绘制的数据相同的数组,其中只包含一个数字。然后,NumPy 模块的 triu() 方法会将如此形成的矩阵转换为上三角矩阵,即对角线上方的元素将为 1 和下方的元素,其上的元素将为 0。掩蔽将应用于 1(True ) 设置。
以下步骤显示了如何生成三角形相关热图:
- 首先导入所有需要的模块
- 导入存储数据的文件
- 绘制热图
- 掩盖不应显示的热图部分
- 使用 matplotlib 显示它
示例 1:
对于下面给出的示例,这里使用的是从 kaggle.com 下载的数据集。该图显示了与亚马逊畅销小说相关的数据。
使用的数据集 –畅销书
Python3
# import modules
import matplotlib.pyplot as mp
import pandas as pd
import seaborn as sb
import numpy as np
# import file with data
data = pd.read_csv("C:\\Users\\Vanshi\\Desktop\\gfg\\bestsellers.csv")
# creating mask
mask = np.triu(np.ones_like(data.corr()))
# plotting a triangle correlation heatmap
dataplot = sb.heatmap(data.corr(), cmap="YlGnBu", annot=True, mask=mask)
# displaying heatmap
mp.show()
Python3
# import modules
import matplotlib.pyplot as mp
import pandas as pd
import seaborn as sb
import numpy as np
# import file with data
data = pd.read_csv("C:\\Users\\Vanshi\\Desktop\\gfg\\cumulative.csv")
# applying mask
mask = np.triu(np.ones_like(data.corr()))
# plotting a triangle correlation heatmap
dataplot = sb.heatmap(data.corr(), mask=mask)
# displaying heatmap
mp.show()
输出:
示例 2:
本例中使用的数据集是由美国宇航局编制的系外行星空间研究数据集。
使用的数据集 -累积
蟒蛇3
# import modules
import matplotlib.pyplot as mp
import pandas as pd
import seaborn as sb
import numpy as np
# import file with data
data = pd.read_csv("C:\\Users\\Vanshi\\Desktop\\gfg\\cumulative.csv")
# applying mask
mask = np.triu(np.ones_like(data.corr()))
# plotting a triangle correlation heatmap
dataplot = sb.heatmap(data.corr(), mask=mask)
# displaying heatmap
mp.show()
输出: