• Seaborn绘制热力图的子图


    Seaborn绘制热力图的子图

    提示:如何绘制三张子图

    绘制的时候,会出现如下问题

    (1)如何绘制1*3的子图

    (2)三个显示条,如何只显示最后一个

    在这里插入图片描述


    提示:下面就展示详细步骤


    前言


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、seaborn是什么?

    Seaborn是一个用于在Python中进行统计数据可视化的库。它是建立在Matplotlib之上的,可以轻松地创建各种各样的统计图表和信息可视化,以便更好地理解数据的分布、关系和趋势。

    Seaborn提供了一系列的高级数据可视化功能,使得绘制各种统计图表变得更加简单。它具有以下特点:

    1. 美观的默认样式: Seaborn具有吸引人的默认绘图样式,这使得生成精美的图表变得更加容易。
    2. 内置的统计图表: Seaborn内置了许多常用的统计图表类型,如折线图、柱状图、箱线图、热力图、分布图等。
    3. 配色方案: Seaborn提供了各种各样的配色方案,可以让图表的颜色更加具有吸引力。
    4. 统计分析支持: Seaborn还可以与统计分析库(如pandas)集成,以更方便地可视化数据的分析结果。

    使用Seaborn可以轻松地创建复杂的图表,而不需要过多的代码编写。它在数据科学、机器学习和数据分析领域广泛应用,帮助人们更好地理解数据并发现隐藏在数据中的模式和见解。

    二、使用步骤

    1. 方法一

    直接设置cbar=False,如下代码会导致,第三张图和前两张图的尺寸不一致

    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    # 创建数据
    data1 = np.random.rand(5, 5)
    data2 = np.random.rand(5, 5)
    data3 = np.random.rand(5, 5)
    
    # 创建一个1x3的子图
    fig, axes = plt.subplots(1, 3, figsize=(15, 5))
    
    # 在每个子图中绘制热力图
    sns.heatmap(data1, ax=axes[0], annot=True, cmap='YlGnBu', cbar=False)
    sns.heatmap(data2, ax=axes[1], annot=True, cmap='YlGnBu', cbar=False)
    sns.heatmap(data3, ax=axes[2], annot=True, cmap='YlGnBu', cbar=True)
    
    # 添加子图标题
    axes[0].set_title('Heatmap 1')
    axes[1].set_title('Heatmap 2')
    axes[2].set_title('Heatmap 3')
    
    # 调整子图布局
    plt.tight_layout()
    
    # 显示图形
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    2.方法二

    直接设置cbar_ax=axes[2].inset_axes([1.05, 0, 0.05, 1])就可以生成三个大小一致的图形,并且只显示最后一个指示条

    # 创建一个13列的子图布局
    fig, axes = plt.subplots(1, 3, figsize=(15, 4.5))
    
    
    # 绘制第一个子图热力图
    heatmap1 = sns.heatmap(data1, cmap='Greens', ax=axes[0], cbar=False)
    # axes[0].set_title('Heatmap 1')
    
    # 绘制第二个子图热力图
    heatmap2 = sns.heatmap(data2, cmap='Greens', ax=axes[1], cbar=False)
    # axes[1].set_title('Heatmap 2')
    
    # 绘制第三个子图热力图
    heatmap3 = sns.heatmap(data3, cmap='Greens', ax=axes[2], cbar_ax=axes[2].inset_axes([1.05, 0, 0.05, 1]))
    # axes[2].set_title('Heatmap 3')
    
    # 显示图形
    plt.tight_layout()
    plt.savefig("./figure/{}.png".format("all_hot"), dpi=300)
    plt.show()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    总结

    提示:子图绘制总结:

    在这个示例中,我们首先导入所需的库,然后创建了一个1x3的子图布局。接下来,使用Seaborn的heatmap函数在每个子图中绘制热力图,并通过ax参数指定要绘制的子图。对于前两个子图,我们将cbar参数设置为False,以防止显示颜色指示条,而在最后一个子图中,我们将cbar参数设置为True,以显示颜色指示条。最后,我们通过设置子图标题和调整布局来美化图表,然后显示图形。

  • 相关阅读:
    嵌入式学习之Linux驱动(第九期_设备模型_教程更新了)_基于RK3568
    创建私有CA,我就用openSSL
    毫米波雷达上险量增长超40%:头部厂商放量,伪玩家裸泳
    evnoy协议转换关键日志
    新学期的分享,立个flag吧
    LeetCode 1805. 字符串中不同整数的数目
    上传ipa到appstore工具
    liunx将本地yun源提供给其他主机使用,使用httpd的方式
    展会预告 | 图扑邀您共聚 IOTE 国际物联网展·深圳站
    《第一行代码Andorid》阅读笔记-第六章
  • 原文地址:https://blog.csdn.net/weixin_39559994/article/details/132523644