前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据可视化(19)-Seaborn系列 | 热力图heatmap()

数据可视化(19)-Seaborn系列 | 热力图heatmap()

原创
作者头像
数据分析可视化
修改2019-10-08 11:16:07
3.6K0
修改2019-10-08 11:16:07
举报
文章被收录于专栏:数据分析与可视化

热力图

将矩形数据绘制成颜色编码矩阵

函数原型

代码语言:txt
复制
seaborn.heatmap(data, vmin=None, vmax=None, 
                cmap=None, center=None, robust=False,
                annot=None, fmt='.2g', annot_kws=None,
                linewidths=0, linecolor='white', cbar=True, 
                cbar_kws=None, cbar_ax=None, square=False,
                xticklabels='auto', yticklabels='auto', 
                mask=None, ax=None, **kwargs)

参数解读

代码语言:txt
复制
data:矩形数据集
可以强制转换为ndarray的2D数据,如果提供了Pandas DataFrame,
则索引/列信息将用于标记列和行。

vmin,vmax:float
作用:锚定颜色图的值

cmap:matplotlib颜色图名称或对象,或者颜色列表
作用:指定从数据值到颜色空间的映射。如果未提供,
则默认值取决于是否设置了中心。

center:float
作用:绘制不同数据时将颜色图居中的值,如果未指定,
则使用此参数将更改默认的cmap

robust:bool
作用:如果不为True且vmin或vmax不存在,
则使用稳健的分位数而不是极值来计算色图范围。

linewidths:线宽 float
作用:将划分每个单元格的线宽度

linecolor:线颜色
作用:指定每个单元格的线的颜色

cbar:bool
作用:指定是否绘制颜色条

案例教程

代码语言:txt
复制
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
np.random.seed(0)
# 生成0-1 均匀分布的随机数 10x12
"""
知识点:
np.random.rand()
通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值.
随机样本取值范围是[0,1),不包括1。
"""
uniform_data = np.random.rand(10, 12)
"""
案例1:
对10x12的数据绘制热力图
"""
sns.heatmap(uniform_data)
plt.show()
代码语言:txt
复制
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
np.random.seed(0)
# 生成0-1 均匀分布的随机数 10x12
"""
知识点:
np.random.rand()
通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值.
随机样本取值范围是[0,1),不包括1。
"""
uniform_data = np.random.rand(10, 12)
"""
案例2:
更改 colormap的限制:
vmin=0, vmax=1
"""
sns.heatmap(uniform_data, vmin=0, vmax=1)
plt.show()
代码语言:txt
复制
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
np.random.seed(0)
# 生成服从标准正态分布的随机数 10x12
"""
知识点:
np.random.randn()
通过本函数可以返回一个或一组服从标准正态分布的随机样本值。
"""
normal_data = np.random.randn(10, 12)
"""
案例3:
更改 colormap的限制:
vmin=0, vmax=1
"""
sns.heatmap(normal_data, center=0)
plt.show()
代码语言:txt
复制
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
# 构建数据
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
"""
案例4:
直接对dataFrame数据进行热力图显示
"""
sns.heatmap(flights)
plt.show()
代码语言:txt
复制
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
# 构建数据
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
"""
案例5:
对每个单元格进行数值显示
"""
sns.heatmap(flights, annot=True, fmt="d")
plt.show()
代码语言:txt
复制
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
# 构建数据
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
"""
案例6:
绘制每个单元格的边框
"""
sns.heatmap(flights, linewidths=.5)
plt.show()
代码语言:txt
复制
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
# 构建数据
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
"""
案例7:
使用不同的colormap进行颜色显示
"""
sns.heatmap(flights, cmap="YlGnBu")
plt.show()
代码语言:txt
复制
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
# 构建数据
data = np.random.randn(50, 20)
"""
案例8:
每隔一列打印标签,不打印行标签
"""
sns.heatmap(data, xticklabels=2, yticklabels=False)
plt.show()
代码语言:txt
复制
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
# 构建数据
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
"""
案例9:
不绘制颜色条
"""
sns.heatmap(flights, cbar=False)
plt.show()
代码语言:txt
复制
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
# 构建数据
corr = np.corrcoef(np.random.randn(10, 200))
mask = np.zeros_like(corr)
"""
案例10:
利用mask 只绘制矩阵一半
"""
mask[np.triu_indices_from(mask)] = True
with sns.axes_style("white"):
    sns.heatmap(corr, mask=mask, vmax=.3, square=True)
plt.show()

案例地址

案例代码已上传:Github https://github.com/Vambooo/SeabornCN

整理制作:数据分析与可视化学研社

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 热力图
  • 函数原型
  • 参数解读
  • 案例教程
  • 案例地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档