seaborn绘制热图(Heatmap)
目录
- 什么是热图?
- sns.heatmap函数
- 示例
- 实战
什么是热图?
热图(HeatMap)是一种可视化方式,用于表示二维数据的矩阵,其中不同的数值通过不同颜色的方块或单元格来表示。每个单元格的颜色深浅或者色调会根据数据的值进行相应的变化,使得我们能够直观地观察数据之间的模式和关系。
在热图中,通常使用颜色渐变来表示数值的大小。常见的热图颜色映射包括灰度、彩虹色、红蓝色等。较小的值可以用深色或冷色表示,而较大的值则用浅色或暖色表示。这种颜色的分布可以使得数据的高低、趋势和相关性等特征在视觉上更易于辨别。
热图在数据分析和可视化中非常常见,它可以用于各种领域,如生物学、金融、社会科学、工程等。通过热图,我们可以更好地理解数据之间的关系和规律,发现异常值或者异常模式,并支持决策过程。
sns.heatmap函数
sns.heatmap是Seaborn库中的一个函数,用于绘制热力图。热力图是一种用颜色编码的矩形图,其中矩形的颜色根据数值的大小而变化,用于可视化矩形数据集的值。
sns.heatmap函数的基本语法如下:
sns.heatmap(data, cmap=None, annot=False, fmt='.2g', linewidths=0.5)
参数说明:
- data:要绘制的数据,可以是DataFrame或类似数组的数据结构。
- cmap:用于指定颜色映射的颜色图谱名称,例如’viridis’、‘plasma’、'coolwarm’等。
- annot:一个布尔值,表示是否在热力图中显示数值标签。 fmt:用于控制数值标签格式的字符串格式。
- linewidths:用于指定单元格之间的间隔线的宽度。
示例
import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt# 创建一个包含随机数据的DataFrame
data = pd.DataFrame(np.random.rand(4, 4), columns=['A', 'B', 'C', 'D'])# 绘制热力图
sns.heatmap(data, annot=True, cmap='YlGnBu', fmt='.2f', linewidths=0.5)
plt.show()
实战
# 导入第三方模块
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as snsplt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来显示负号# 读取数据
Sales = pd.read_excel(r'Sales.xlsx')# 根据交易日期,衍生出年份和月份字段
Sales['year'] = Sales.Date.dt.year
Sales['month'] = Sales.Date.dt.month
# 统计每年各月份的销售总额
Summary = Sales.pivot_table(index = 'month', columns = 'year', values = 'Sales', aggfunc = np.sum)# 绘制热力图
sns.heatmap(data = Summary, # 指定绘图数据cmap = 'PuBuGn', # 指定填充色linewidths = .1, # 设置每个单元格边框的宽度annot = True, # 显示数值fmt = '.1e' # 以科学计算法显示数据)
#添加标题
plt.title('每年各月份销售总额热力图')
# 显示图形
plt.show()