如何在Tableau中创建全度量相关性热力图?附Python实现示例
在Tableau中制作相关性热力图
步骤1:导入数据
- 打开Tableau,连接你的数据源:
- 如果是数据库,选择对应数据库类型,进入自定义SQL界面,输入你的查询语句(和Python代码里的
select statement一致),执行后加载数据。 - 也可以在Python里先把查询结果导出为CSV文件(
df.to_csv('data.csv', index=False)),再在Tableau中导入该CSV。
- 如果是数据库,选择对应数据库类型,进入自定义SQL界面,输入你的查询语句(和Python代码里的
步骤2:准备相关系数计算
Tableau没有直接生成相关系数矩阵的内置功能,你需要先计算每对度量之间的皮尔逊相关系数,这里提供两种可行方法:
方法A:提前用Python生成相关系数矩阵再导入
- 在你的Python代码中,计算相关性矩阵并转成长格式后导出为CSV:
import pandas as pd df = pd.read_sql('select statement') # 转成长格式,方便Tableau处理 corr_matrix = df.corr().reset_index().melt(id_vars='index') corr_matrix.columns = ['Metric1', 'Metric2', 'Correlation'] corr_matrix.to_csv('correlation_matrix.csv', index=False)
- 然后在Tableau中导入这个
correlation_matrix.csv文件,此时数据包含三列:两个度量名称、对应的相关系数。
方法B:在Tableau内用计算字段+表计算实现
- 加载原始数据后,确保所有10个度量都在度量面板中。
- 创建计算字段
Correlation,输入表计算公式:
注意:这种方式需要为每一对度量重复创建计算字段,10个度量需要创建45个字段,操作繁琐,因此更推荐方法A。CORR([度量1], [度量2])
步骤3:构建热力图
- 若使用方法A的长格式数据:
- 把
Metric1拖到行,Metric2拖到列。 - 把
Correlation拖到颜色标记卡,Tableau会自动生成颜色梯度。 - 把
Correlation拖到文本标记卡,让每个单元格显示具体的相关系数数值(对应Python代码里的annot=True)。 - 调整颜色方案:点击颜色标记卡,选择合适的渐变色(比如从蓝色到红色,对应负相关到正相关),可勾选“反转颜色”匹配常见热力图习惯。
- 把
- 若使用方法B:
- 把所有度量拖到行和列,将对应的
Correlation计算字段拖到颜色和文本,把显示模式切换为“文本表”后再转为热力图样式。
- 把所有度量拖到行和列,将对应的
步骤4:优化可视化效果
- 隐藏重复单元格:利用表计算的“仅显示上三角/下三角”设置,去掉对称的重复数据。
- 调整单元格大小:拖动行/列分隔线,让热力图单元格比例更协调。
- 格式化文本:在文本标记卡中调整字体大小,让相关系数更清晰。
内容的提问来源于stack exchange,提问作者Pritesh
相关产品推荐
相关产品推荐

