You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何在单个代码单元格中输出多个独立热力图并添加色标描述

解决热力图上下独立布局+色标添加描述的方案

没问题,我来帮你搞定这个需求!原来的代码因为没有指定绘图的坐标轴,导致两个热力图默认叠加在同一个画布上,咱们只需要借助matplotlib的子图布局就能实现上下独立显示,同时用seaborn的内置参数给色标加描述。

完整代码示例

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# 设置随机种子保证结果可复现
np.random.seed(0)
sns.set()

# 创建测试数据
uniform_data1 = np.random.rand(10, 12)
uniform_data2 = np.random.rand(5, 6)

# 创建2行1列的子图布局,figsize可按需调整尺寸
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, figsize=(10, 8))

# 绘制第一个热力图:指定子图、给色标加描述
sns.heatmap(uniform_data1, ax=ax1, cbar_kws={'label': '第一组数据的数值强度'})
ax1.set_title('第一组随机数据热力图')  # 可选:给每个图添加标题

# 绘制第二个热力图:同样指定子图和色标描述
sns.heatmap(uniform_data2, ax=ax2, cbar_kws={'label': '第二组数据的数值强度'})
ax2.set_title('第二组随机数据热力图')  # 可选:给每个图添加标题

# 自动调整子图间距,避免标签、标题互相遮挡
plt.tight_layout()
plt.show()

关键参数解释

  • plt.subplots(nrows=2, ncols=1):直接创建上下排列的两个独立子图,返回的ax1ax2分别对应上下两个绘图区域
  • ax=ax1/ax2:强制seaborn在指定的子图上绘制热力图,彻底解决两个图叠加的问题
  • cbar_kws={'label': '你的描述文本'}:通过这个参数给色标(颜色条)添加自定义描述标签,精准满足你的需求
  • plt.tight_layout():自动优化子图之间的间距,让标题、轴标签不会互相遮挡,生成的图表更适合报告使用

效果说明

运行这段代码后,你会得到两个完全独立的热力图——第一个在上、第二个在下,每个图都带有自己的色标和自定义描述,完全符合报告生成的格式要求。

内容的提问来源于stack exchange,提问作者Leockl

火山引擎 最新活动