做网站的企划书,网站建设项目确认书,wordpress适合企业网站模板,应用软件和嵌入式软件的区别热力图#xff08;Heatmap#xff09;是一种通过颜色深浅来展示数据分布、密度和强度等信息的可视化图表。它通过对色块着色来反映数据特征#xff0c;使用户能够直观地理解数据模式#xff0c;发现规律#xff0c;并作出决策。 目录
基本原理
sns.heatmap
代码实现 基… 热力图Heatmap是一种通过颜色深浅来展示数据分布、密度和强度等信息的可视化图表。它通过对色块着色来反映数据特征使用户能够直观地理解数据模式发现规律并作出决策。 目录
基本原理
sns.heatmap
代码实现 基本原理
热力图本质上是一个数值矩阵图上每一个色块都代表一个数值。通过离散数值、权重算法与分析模型等技术手段将用户行为频度或数据密度以色块的形式展现出来。在设计时需要指定颜色映射的规则例如较大的值可以由较深的颜色或偏暖的颜色表示而较小的值则由较浅的颜色或较冷的颜色表示。
两个变量之间相关系数的计算公式为: ρ表示相关系数Cov表示协方差E表示数学期望/均值。值得注意的是该相关系数主要用以量化变量之间的线性关联强度具体而言当相关系数较高时它指示了变量间存在较强的线性相关性。然而对于相关系数较低的两个变量而言这仅仅表明它们之间的线性相关程度较弱而并非意味着这两个变量之间完全不存在其他类型的关联如非线性如曲线关系或其他复杂的相关性。因此在解释相关系数时需谨慎避免过度简化或误读变量间的关系。 sns.heatmap
sns.heatmap 是 Seaborn 库中的一个非常有用的函数用于绘制热力图Heatmap。热力图是一种通过颜色深浅来表示数据大小的图形常用于展示矩阵或表格数据的分布和关系。在数据可视化中热力图尤其适合展示变量之间的相关性、数据的聚类情况或数据的密度分布等。
sns.heatmap涉及到一些主要的参数
vmin, vmax这两个参数用于设置热力图中颜色映射的最小值和最大值可以调整颜色映射的范围以更好地展示数据。cmap指定颜色映射表colormap用于控制热力图中颜色的分布和变化。annot如果设置为True则在每个单元格中显示数据值。也可以是一个形状与数据相同的数组用于自定义注释内容。fmt当annot为True时用于设置注释的格式化字符串。linewidths设置热力图单元格之间的线条宽度。linecolor设置热力图单元格之间线条的颜色。cbar是否显示颜色条。square如果为True则强制热力图的每个单元格都是正方形的。mask一个布尔数组或DataFrame用于指定哪些单元格应该被屏蔽不显示。这对于绘制下三角或上三角矩阵特别有用。 代码实现
# 生成一个3x3的随机数组
values np.random.rand(3, 3)
# 设置x轴标签
x_ticks [x-1, x-2, x-3]
# 设置y轴标签
y_ticks [y-1, y-2, y-3]
# 使用seaborn库绘制热图并设置x轴和y轴标签
ax sns.heatmap(values, xticklabelsx_ticks, yticklabelsy_ticks)
# 设置图表标题
ax.set_title(3x3 Heatmap)
# 设置x轴标签
ax.set_xlabel(x label)
# 设置y轴标签
ax.set_ylabel(y label)
# 显示图表
plt.show() uniform_data np.random.rand(10, 12)
ax sns.heatmap(uniform_data) 通过annot参数设置可以在小方格中显示数值
# 生成一个10行12列的随机数矩阵
uniform_data np.random.rand(10, 12)
# 使用seaborn库中的heatmap函数绘制热力图annot参数设置为True表示在热力图上显示数据值
ax sns.heatmap(uniform_data, annotTrue) 可以创建一个与相关系数矩阵相同大小的布尔矩阵用于遮罩实现更加简化美观的效果。
布尔矩阵Boolean Matrix是数学中的一个重要概念它指的是元素只取0或1的矩阵因此也被称为0-1矩阵。布尔矩阵在计算机科学、编码理论、网络理论等领域有着广泛的应用。在数学上布尔矩阵通常使用大写字母如A, B, C等表示矩阵中的元素使用小写字母加下标如a_ij表示其中i表示行号j表示列号。
# 导入ascii_letters模块
from string import ascii_letters
# 设置seaborn的样式为white
sns.set(stylewhite)
# 创建一个随机数生成器
rs np.random.RandomState(33)
# 创建一个100行26列的DataFrame数据为正态分布随机数
d pd.DataFrame(datars.normal(size(100, 26)),columnslist(ascii_letters[26:]))
# 计算DataFrame的相关系数矩阵
corr d.corr()
# 创建一个与相关系数矩阵相同大小的布尔矩阵用于遮罩
mask np.zeros_like(corr, dtypebool)
# 将上三角矩阵的元素设置为True
mask[np.triu_indices_from(mask)] True
# 创建一个11x9的子图
f, ax plt.subplots(figsize(11, 9))
# 创建一个颜色映射
cmap sns.diverging_palette(220, 10, as_cmapTrue)
# 绘制热力图使用遮罩颜色映射最大值为0.3中心值为0方格边框宽度为0.5颜色条缩小为0.5
sns.heatmap(corr, maskmask, cmapcmap, vmax.3, center0,squareTrue, linewidths.5, cbar_kws{shrink: .5})