数据可视化案例(19)-Seaborn系列 | 热力图heatmap()
Posted 数据分析与可视化学研社
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据可视化案例(19)-Seaborn系列 | 热力图heatmap()相关的知识,希望对你有一定的参考价值。
本篇是《Seaborn系列》文章的第19篇-热力图。
第一篇:
第二篇:
第三篇:
第四篇:
第五篇:
第六篇:
第七篇:
第八篇:
第九篇:
第十篇:
第十一篇:
第十二篇:
第十三篇:
第十四篇:
第十五篇:
第十六篇:
第十七篇:
第十八篇:
案例代码:(欢迎给表哥Star一下)
https://github.com/Vambooo/SeabornCN
seaborn.heatmap()热力图
将矩形数据绘制成颜色编码矩阵
函数原型:
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)
参数解读:
data:矩形数据集
可以强制转换为ndarray的2D数据,如果提供了Pandas DataFrame,
则索引/列信息将用于标记列和行。
vmin,vmax:float
作用:锚定颜色图的值
cmap:matplotlib颜色图名称或对象,或者颜色列表
作用:指定从数据值到颜色空间的映射。如果未提供,
则默认值取决于是否设置了中心。
center:float
作用:绘制不同数据时将颜色图居中的值,如果未指定,
则使用此参数将更改默认的cmap
robust:bool
作用:如果不为True且vmin或vmax不存在,
则使用稳健的分位数而不是极值来计算色图范围。
linewidths:线宽 float
作用:将划分每个单元格的线宽度
linecolor:线颜色
作用:指定每个单元格的线的颜色
cbar:bool
作用:指定是否绘制颜色条
案例教程
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
上述案例代码:
https://github.com/Vambooo/SeabornCN
数据挖掘分析可视化交流群成立啦
表哥画图已经创建数据挖掘分析可视化交流群。
喜欢数据挖掘分析可视化的朋友扫码添加,表哥拉你进群。
(请务必填写备注: eg. 数据分析)
长按加群
欢迎 转发、给个"在看"
以上是关于数据可视化案例(19)-Seaborn系列 | 热力图heatmap()的主要内容,如果未能解决你的问题,请参考以下文章
Python使用matplotlib可视化相关性分析热力图图heatmap使用seaborn中的heatmap函数可视化相关性热力图(Correllogram)