使用Python制作气泡热图的示例代码

 更新时间:2025年07月10日 09:38:07   作者:Code_Verse  
在数据分析和可视化中,气泡热图是一种非常直观的工具,可以展示数据之间的关系和强度,下面小编就来和大家详细讲讲如何用Python制作一个气泡热图吧

在数据分析和可视化中,气泡热图是一种非常直观的工具,可以展示数据之间的关系和强度。今天,我将带你一步步学会如何用Python制作一个气泡热图。别担心,我会用最简单的方式解释每一个步骤,即使你没有编程基础也能轻松上手!

一、什么是气泡热图

气泡热图是一种结合了气泡图和热图特点的可视化图表。它通过气泡的大小和颜色来表示数据的强度,同时通过位置来展示数据的分类或分组。这种图表非常适合展示多个变量之间的关系,例如不同样本之间的某种属性强度。

二、我们需要什么样的数据

在制作气泡热图之前,我们需要准备以下类型的数据:

两个分类变量:这两个变量将决定气泡的位置。例如,X轴可以是一个分类变量(如不同的类别或分组),Y轴是另一个分类变量。

一个数值变量:这个变量决定了气泡的大小和颜色,通常表示某种强度或值的大小。

在我们的代码示例中,我们用的是随机生成的数据,但如果你有自己的数据,可以按照类似的结构准备。比如:

  • X轴:1到10的类别(可以是任何分组)。
  • Y轴:1到10的样本(也可以是其他分组)。
  • 每个气泡的大小和颜色由一个10×10的矩阵决定,矩阵中的每个值表示气泡的强度。

三、开始制作气泡热图

1. 安装必要的库

在开始之前,我们需要安装两个Python库:numpymatplotlib。这两个库分别用于处理数据和绘图。

如果你还没有安装,可以通过以下命令安装:

pip install numpy matplotlib

2. 准备代码

接下来,我们来看看代码的每一步。

(1)导入库

import numpy as np
import matplotlib.pyplot as plt
  • numpy用于处理数据,比如生成网格和随机数。
  • matplotlib.pyplot用于绘图。

(2)创建示例数据

K = np.arange(1, 11)  # X轴的分类变量
Samples = np.arange(1, 11)  # Y轴的分类变量
X, Y = np.meshgrid(K - 0.5, Samples - 0.5)  # 气泡中心位于格子中心
Z = np.random.rand(10, 10)  # 随机生成的强度数据
  • KSamples分别是X轴和Y轴的分类变量。
  • X, Y是通过meshgrid生成的网格,用于确定气泡的中心位置。
  • Z是一个10×10的矩阵,表示每个气泡的强度(随机生成的)。

(3)设置气泡大小

max_bubble_diameter = 0.8  # 最大气泡直径
bubble_sizes = Z * max_bubble_diameter**2 * 800  # 调整大小比例因子

气泡的大小与Z成正比,但最大直径被限制为0.8,以避免气泡之间重叠。

(4)绘制气泡图

plt.figure(figsize=(10, 8))  # 设置图形大小
scatter = plt.scatter(X, Y, s=bubble_sizes, c=Z, cmap='viridis', alpha=0.7, edgecolors="black", linewidth=1)
  • 使用scatter绘制气泡图。
  • s参数设置气泡大小。
  • c参数设置气泡颜色,颜色由Z决定。
  • cmap='viridis'设置了颜色映射,你可以换成其他颜色映射(如'plasma''coolwarm')。
  • alpha是透明度,edgecolorslinewidth设置了气泡的边框颜色和宽度。

(5)添加颜色条

cbar = plt.colorbar(scatter)
cbar.set_label('Bubble Intensity', fontsize=12)

颜色条可以帮助我们理解气泡颜色的含义。

(6)设置标题和标签

plt.title("Bubble Heatmap Plot", fontsize=18, fontweight='bold')
plt.xlabel("K (w)", fontsize=14)
plt.ylabel("Samples", fontsize=14)

标题和坐标轴标签让图表更清晰。

(7)设置坐标轴刻度和范围

plt.xticks(K, fontsize=12)
plt.yticks(Samples, fontsize=12)
plt.xlim(0, 10)
plt.ylim(0, 10)

确保气泡对齐在格子内,避免被切割。

(8)添加网格

plt.grid(True, which='both', axis='both', linestyle='-', linewidth=1, color='black')

网格可以帮助我们更好地理解气泡的位置。

(9)调整布局并显示图形

plt.tight_layout(pad=0.1)  # 调整布局
plt.show()  # 显示图形

四、运行代码,查看结果

将上述代码复制到你的Python环境中,运行后你将看到一个漂亮的气泡热图!你可以尝试修改数据或颜色映射,看看会发生什么变化。

完整代码如下:

import numpy as np
import matplotlib.pyplot as plt
# 创建示例数据
K = np.arange(1, 11)
Samples = np.arange(1, 11)
X, Y = np.meshgrid(K - 0.5, Samples - 0.5)  # 气泡中心位于格子中心
Z = np.random.rand(10, 10)
# 设置气泡大小,大小与数据Z成正比,但限制最大直径为0.8
max_bubble_diameter = 0.8  # 最大气泡直径
bubble_sizes = Z * max_bubble_diameter**2 * 800  # 调整大小比例因子以适应最大直径限制
# 创建气泡图
plt.figure(figsize=(10, 8))
# 绘制气泡图,使用 'viridis' 色系
scatter = plt.scatter(X, Y, s=bubble_sizes, c=Z, cmap='viridis', alpha=0.7, edgecolors="black", linewidth=1)
# 添加颜色条
cbar = plt.colorbar(scatter)
cbar.set_label('Bubble Intensity', fontsize=12)
# 设置标题和标签
plt.title("Bubble Heatmap Plot", fontsize=18, fontweight='bold')
plt.xlabel("K (w)", fontsize=14)
plt.ylabel("Samples", fontsize=14)
# 设置坐标轴刻度,确保气泡对齐在格子内
plt.xticks(K, fontsize=12)
plt.yticks(Samples, fontsize=12)
# 添加网格,清晰展示格子边框
plt.grid(True, which='both', axis='both', linestyle='-', linewidth=1, color='black')
# 设置坐标轴范围,使气泡显示在格子内,避免气泡被切割
plt.xlim(0, 10)
plt.ylim(0, 10)
# 调整布局,确保图形无多余空白并完整显示
plt.tight_layout(pad=0.1)  # 适当减小边缘空白
# 显示图形
plt.show()

五、总结

通过今天的教程,我们学会了如何用Python制作气泡热图。只要准备好合适的分类变量和数值变量,就可以轻松生成这种直观的图表。希望你能用这个技能来展示你的数据!

到此这篇关于使用Python制作气泡热图的示例代码的文章就介绍到这了,更多相关Python气泡热图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python一行代码快速实现程序进度条示例

    Python一行代码快速实现程序进度条示例

    这篇文章主要为大家介绍了Python一行代码快速实现程序进度条示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 利用Python如何将数据写到CSV文件中

    利用Python如何将数据写到CSV文件中

    在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中。下面这篇文章主要给大家介绍了关于利用Python如何将数据写到CSV文件中的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-06-06
  • python3连接kafka模块pykafka生产者简单封装代码

    python3连接kafka模块pykafka生产者简单封装代码

    今天小编就为大家分享一篇python3连接kafka模块pykafka生产者简单封装代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python引入导入自定义模块和外部文件的实例

    python引入导入自定义模块和外部文件的实例

    下面小编就为大家带来一篇python引入导入自定义模块和外部文件的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 从安装到精通详解Python包管理神器pip完全指南(小白友好版)

    从安装到精通详解Python包管理神器pip完全指南(小白友好版)

    本文是一篇Python包管理工具pip的全面指南,从基础到进阶介绍了pip的核心功能和使用技巧,全文采用通俗易懂的语言,适合Python初学者,快跟随小编一起学习一下吧
    2026-03-03
  • 给我一面国旗 python帮你实现

    给我一面国旗 python帮你实现

    这篇文章主要为大家详细介绍了Python之给我一面国旗的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • Python中常用数据类型使用示例概括总结

    Python中常用数据类型使用示例概括总结

    这篇文章主要为大家介绍了Python中常用数据类型使用示例概括总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 利用Python实现文档批量重命名

    利用Python实现文档批量重命名

    日常工作中总会遇到一些需要收集文件的情况,但往往最后收集回来的文件名称会五花八门,下面小编就来为大家讲讲如何使用Python实现批量重命名操作吧
    2025-02-02
  • Python K最近邻从原理到实现的方法

    Python K最近邻从原理到实现的方法

    这篇文章主要介绍了Python K最近邻从原理到实现的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python中垃圾回收和del语句详解

    Python中垃圾回收和del语句详解

    Python语言默认采用的垃圾收集机制是引用计数法,本文详细的介绍了Python中垃圾回收和del语句详解,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11

最新评论