使用Python进行绘制一致性热图

一,一致性热图的意义与应用

一致性热图是一种强大的数据可视化工具,用于展示多个变量或方法之间的一致性或相关性。它的主要特点和作用包括:

直观展示关系:通过颜色深浅和数值标注,一目了然地显示变量间的相关程度。

模式识别:帮助快速识别哪些变量高度相关或独立,发现数据中的潜在模式。

方法比较:在科学研究中,常用于比较不同测量方法或评估工具之间的一致性。

决策支持:基于一致性分析结果,可以做出更明智的变量选择或方法取舍。

在实践应用中,一致性热图常用于:

心理学和教育学中的测验效度分析

医学诊断方法的比较研究

金融指标的相关性分析

机器学习特征选择前的相关性检查

二,代码演示

这段Python代码首先使用pandas库读取Excel文件数据,并提取预先定义的特定列(CUSTOM_METHOD_COLS中的列名称)组成数据子集。然后通过计算这些列之间的Pearson相关系数生成相关矩阵,这是分析变量间线性关系强度的关键步骤。接着代码创建了一个从浅黄色到深红色的自定义颜色渐变映射(LinearSegmentedColormap),用于直观地表示相关性强弱程度。最后使用seaborn的heatmap函数绘制热力图,设置了包括数值标注(annot=True)、自定义颜色映射(cmap)、单元格边框样式(linewidths和linecolor)以及图形尺寸(figsize)等多个可视化参数,使生成的热图既美观又信息丰富。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
import os

# 文件路径
EXCEL_PATH = r'你的excel文件路径'

#定义列
CUSTOM_METHOD_COLS = [
    "列名称1",
    "列名称2",
    "列名称3",
    "列名称4",
    "列名称5"
]

# 定义颜色映射
CUSTOM_COLORS = [
   "#FFEDA0",  
    "#FED976",  # 橙黄
    "#FEB24C",  # 橙
    "#FD8D3C",  # 橙红
    "#FC4E2A",  # 红
    "#E31A1C",  # 深红
    "#B10026"   # 暗红 (最大值)
]

def main():
    try:
        # 读取 Excel
        df = pd.read_excel(EXCEL_PATH)

        # 提取列
        df_subset = df[CUSTOM_METHOD_COLS]

        # Pearson 相关性
        corr_matrix = df_subset.corr(method='pearson')

        # 画图
        custom_cmap = LinearSegmentedColormap.from_list(
            "custom_orange_red", CUSTOM_COLORS, N=256
        )

        plt.figure(figsize=(8, 6))
        sns.heatmap(
            corr_matrix,
            annot=True,
            cmap=custom_cmap,
            linewidths=0.5,
            linecolor="#444444",
            square=True,
            vmin=0,
            vmax=1,
            cbar_kws={"label": "Pearson "}
        )

        # 添加标题与标签
        plt.title("consistent heat map", fontsize=14, pad=20)
        plt.xticks(rotation=45)
        plt.yticks(rotation=0)
        plt.tight_layout()

        # 保存
        output_path = os.path.join(os.getcwd(), 'custom_method_consistency_heatmap.png')
        plt.savefig(output_path, dpi=300, bbox_inches='tight')
        plt.show()

    except Exception as e:
        print(f"worn: {e}")

if __name__ == "__main__":
    main()

三,输出结果

通过颜色编码矩阵来展示多个变量间相关性强度的可视化方法,其核心价值在于直观揭示变量间的关联模式。在热图中,颜色深浅代表相关系数大小,通常暖色(如红色)表示强正相关,冷色表示负相关或低相关。这种图表广泛应用于特征选择、方法比较和模式识别等场景
以下是分析一致性热图的几个关键步骤:

1. 观察整体相关性模式

高相关性(接近1,深红色):表示两个变量高度一致,可能具有相似的测量趋势或相互影响。

中等相关性(0.3~0.7,橙黄色):变量之间存在一定关联,但并非完全一致。

低相关性(接近0,浅黄色):变量之间几乎没有线性关系。

负相关性(-1~0,蓝色系,若使用双色渐变):变量呈现反向变化趋势。

2. 识别变量间的强关联

如果某些变量之间呈现深红色(高相关性),可能意味着它们测量的是相似的特性,可能存在冗余(如身高和体重可能高度相关)。

在特征选择时,可以剔除高度相关的变量,避免模型过拟合。

3. 检查方法或测量工具的一致性

如果热图用于比较不同测量方法(如不同实验方法或评估工具),高一致性(深色块)说明这些方法结果相似,可以互换使用。

低一致性(浅色块)则表明方法差异较大,可能需要进一步校准或选择更可靠的方法。

4. 寻找异常或意外相关性

如果某些理论上不相关的变量却显示出较高相关性,可能暗示数据存在偏差或隐藏的关联因素,需要进一步研究。

例如,在心理学测试中,两个看似无关的量表若高度相关,可能意味着它们测量了相同的潜在特质。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

evil robot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值