【问题标题】:plot two seaborn heatmap graphs side by side并排绘制两个 seaborn 热图
【发布时间】:2026-01-11 05:15:02
【问题描述】:

我正在尝试并排绘制两个 seaborn 图表,就像其他图表(成功)在之前的问题中所做的那样,我能看到的唯一区别是热图似乎引发了问题。产生错误的代码是:

import numpy as np; np.random.seed(0)
import seaborn as sns

uniform_data = np.random.rand(10, 12)    
uniform_data2 = np.random.rand(100, 120)

fig, ax =plt.subplots(1,2)

ax = sns.heatmap(uniform_data)
ax = sns.heatmap(uniform_data2)

这会产生以下内容

【问题讨论】:

    标签: python numpy plot heatmap seaborn


    【解决方案1】:

    您已经使用fig, ax = plt.subplots(1,2) 创建了一个轴数组。然后,您将使用sns.heatmap 的结果覆盖该数组。相反,您想使用sns.heatmapax= 参数指定要绘制到哪些轴:

    import numpy as np; np.random.seed(0)
    import seaborn as sns
    
    uniform_data = np.random.rand(10, 12)    
    uniform_data2 = np.random.rand(100, 120)
    
    fig, ax =plt.subplots(1,2)
    
    sns.heatmap(uniform_data, ax=ax[0])
    sns.heatmap(uniform_data2, ax=ax[1])
    
    plt.show()
    

    这给出了:

    【讨论】:

      【解决方案2】:

      您只需要使用ax 参数

      fig, (ax1, ax2) = plt.subplots(1,2)
      sns.heatmap(uniform_data, ax=ax1)
      sns.heatmap(uniform_data2, ax=ax2)
      plt.show()
      

      【讨论】: