logo

Python 中如何利用 Matplotlib 和 Seaborn 绘制热力图? 实用指南 | 帆软九数云

九数云BI小编 | 发表于:2025-12-22 14:15:01

绘制热力图,也称为热图,是一种通过颜色变化来可视化矩阵数据的强大工具。它能够直观地展示数据的密度和分布情况,在数据分析、机器学习、金融等领域有着广泛的应用。通过使用不同的颜色方案,热力图可以帮助人们快速识别数据中的模式、趋势和异常值。例如,在生物信息学中,热力图常用于基因表达数据的可视化;在市场营销中,则可以用于分析用户行为的热点区域。

一、Matplotlib 基础绘制热力图

Matplotlib 是 Python 中一个基础且功能强大的绘图库。使用 Matplotlib 绘制热力图,通常需要先将数据转换为二维数组(例如 NumPy 数组),然后利用 `imshow` 函数进行绘制。


import matplotlib.pyplot as plt
import numpy as np

# 示例数据:二维数组
data = np.array([[1, 0.5, 0.7], [0.1, 0.2, 0.3]])

plt.imshow(data, cmap='rainbow', aspect=1)  # cmap 设置颜色映射,aspect 控制宽高比
plt.colorbar()  # 添加颜色条
plt.show()

Matplotlib 高级自定义

为了使热力图更具可读性和信息量,可以进行高级自定义,包括添加标签、标题、调整刻度以及自定义颜色条等。


import numpy as np
import matplotlib.pyplot as plt

# 示例数据和标签
n = 5
data = np.random.rand(n, n)  # 随机 n x n 矩阵
labelx = [f'X{i}' for i in range(n)]
labely = [f'Y{i}' for i in range(n)]

plt.imshow(data, cmap='rainbow', origin='lower', aspect=1)
plt.title('示例热力图', fontsize=14)
plt.xlabel('X 轴', fontsize=12)
plt.ylabel('Y 轴', fontsize=12)
plt.xticks(ticks=np.arange(n), labels=labelx, rotation=45)
plt.yticks(ticks=np.arange(n), labels=labely, rotation=0)
plt.tick_params(axis='both', width=2, length=3, color='blue')
plt.colorbar(pad=0.09, orientation='vertical', shrink=0.8)
plt.tight_layout()
plt.show()

在上述代码中,`cmap` 参数用于设置颜色映射,例如 'rainbow'、'YlGnBu' 等。`xticks` 和 `yticks` 用于设置刻度位置和标签,支持旋转和对齐。`colorbar` 用于控制颜色条的位置、方向和缩放。

二、Seaborn 基础绘制热力图(更简便)

Seaborn 是基于 Matplotlib 的高级可视化库,提供了更简洁的 API 和更美观的默认样式。Seaborn 的 `heatmap` 函数可以方便地用于 绘制热力图,并且能够直接处理 Pandas DataFrame 数据。


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

data = np.array([[1, 2, 3], [4, 5, 6]])
sns.heatmap(data)
plt.show()

Seaborn 高级自定义

Seaborn 提供了丰富的高级自定义选项,例如掩码、注释和中心值设置,使得 绘制热力图 更加灵活和强大。


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

data = np.random.rand(5, 5)
df = pd.DataFrame(data, columns=[f'Col{i}' for i in range(5)], index=[f'Row{i}' for i in range(5)])

mask = np.random.choice([True, False], size=(5,5), p=[0.3, 0.7])  # 随机掩码

sns.heatmap(df, cmap='YlGnBu', annot=True, linewidths=0.9, linecolor='white',
            center=0, square=True, mask=mask,
            cbar_kws={'orientation':'vertical', 'shrink':1})
plt.show()

在上述代码中,`annot=True` 用于显示数值标签。`mask` 参数接受一个布尔矩阵,用于隐藏部分数据。`cbar_kws` 允许自定义颜色条的属性。`square=True` 保证单元格是正方形的。

三、Matplotlib 与 Seaborn 的比较

Matplotlib 提供了基础且灵活的 绘制热力图 的功能,但需要手动设置标签和样式。Seaborn 则提供了更高级的 API 和更美观的默认样式,能够直接处理 DataFrame 数据,并内置了许多自定义选项,例如注释、掩码和中心值设置。选择哪个库取决于具体的需求和偏好。如果需要精细控制刻度和颜色条,可以选择 Matplotlib。如果需要快速 绘制热力图 并进行美化,可以选择 Seaborn。

比较 Matplotlib (imshow) Seaborn (heatmap)
易用性 基础灵活,需要手动标签 一行代码美化,支持 DataFrame
自定义 精细控制刻度/颜色条 内置 annot/mask/center
适用 任意 2D 数组 矩阵/相关图,风格统一

四、其他工具简述

除了 Matplotlib 和 Seaborn,还有其他一些工具可以用于 绘制热力图。例如,MATLAB 提供了 `heatmap` 函数,可以用于聚合表数据。Tableau 是一款强大的商业智能软件,可以通过拖拽维度和度量来创建热力图。Origin 是一款科学绘图软件,可以从 XY 或矩阵数据创建热力图,并支持添加标签和地图背景。

五、利用九数云BI轻松制作热力图

九数云BI 是一款旨在帮助企业提升数据处理效率的 SaaS BI 工具,它与绘制热力图这一数据可视化方法紧密结合,为用户提供了强大的数据分析能力。通过九数云BI,用户可以轻松地将复杂的数据转化为直观的热力图,从而发现数据中的隐藏模式和趋势。无需编写复杂的代码,只需简单的拖拽操作,即可快速生成专业的热力图,极大地降低了数据分析的门槛。

九数云BI热力图的核心功能与优势:

  • 数据源广泛连接: 九数云BI 支持多种数据源的连接,包括 Excel、CSV、数据库等,方便用户导入各种格式的数据。
  • 智能数据处理: 内置强大的数据清洗和转换功能,帮助用户快速处理数据,为热力图的生成提供高质量的数据基础。
  • 灵活的自定义选项: 允许用户自定义颜色方案、标签、刻度等,以满足不同的可视化需求。
  • 交互式分析: 用户可以通过交互式操作,例如钻取、过滤等,深入分析热力图中的数据,发现潜在的商业价值。
  • 云端协作: 支持多人在线协作,方便团队成员共享和讨论热力图,提高决策效率。

九数云BI 凭借其强大的功能和易用性,成为了企业进行数据分析和决策的得力助手。通过利用九数云BI 绘制热力图,企业可以更加深入地了解业务状况,发现潜在的增长机会,从而在激烈的市场竞争中脱颖而出。

插图

总结

绘制热力图 是数据可视化中一种非常实用的技术,能够帮助人们快速理解矩阵数据的分布和模式。无论是使用 Matplotlib 还是 Seaborn,都可以根据自己的需求和偏好选择合适的工具。九数云BI 作为一款强大的 SaaS BI 工具,也提供了便捷的热力图 绘制热力图 功能,帮助企业更好地进行数据分析和决策。如果您想了解更多关于九数云BI的信息,可以访问九数云官网www.jiushuyun.com),免费试用体验。

热门产品推荐

九数云BI是一个人人都可轻松上手的零代码工具,您可以使用它完成各类超大数据量、超复杂数据指标的计算,也可以在5分钟内创建富有洞察力的数据看板。企业无需IT、无需大量资源投入,就能像搭积木一样搭建企业级数据看板,全盘核心指标综合呈现,用数据驱动商业决策。
相关内容 查看更多

随时随地在线分析

现在注册,即可领取15天高级版免费使用,体验数据扩容、自动化数据预警、 每日定时更新等20+项强大功能
立即使用