【问题标题】:Python 3: Subplots different even though using same dataPython 3:即使使用相同的数据,子图也不同
【发布时间】:2018-12-13 09:29:28
【问题描述】:

我正在使用 python 3 seaborn 来生成以下子图。

import numpy as np; np.random.seed(1)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(500, 12)
plt.subplot(2, 1, 1)
ax = sns.heatmap(uniform_data)
plt.subplot(2, 1, 2)
ax = sns.heatmap(uniform_data)

两个子图使用相同的数据,但给出不同的图。我不明白为什么。

【问题讨论】:

    标签: python-3.x seaborn subplot


    【解决方案1】:

    我认为问题出在您试图绘制太多线的事实。如果您减小数组的大小,您可以清楚地看到图表是相同的

    import numpy as np; np.random.seed(1)
    import seaborn as sns; sns.set()
    uniform_data = np.random.rand(10, 12)
    plt.subplot(2, 1, 1)
    ax = sns.heatmap(uniform_data)
    plt.subplot(2, 1, 2)
    ax = sns.heatmap(uniform_data)
    

    但是当你试图在图形的小空间中绘制 500 条线时,matplotlib 无法绘制所有线,并选择一个随机(?)子集来显示。

    如果您要增加图形的大小以便可以绘制所有线条,那么您将再次获得相同的输出。

    import numpy as np; np.random.seed(1)
    import seaborn as sns; sns.set()
    uniform_data = np.random.rand(500, 12)
    plt.figure(figsize=(10,30))
    plt.subplot(2, 1, 1)
    ax = sns.heatmap(uniform_data)
    plt.subplot(2, 1, 2)
    ax = sns.heatmap(uniform_data)
    

    【讨论】:

      【解决方案2】:
      import numpy as np; np.random.seed(1)
      import seaborn as sns; sns.set()
      uniform_data = np.random.rand(500, 12)
      
      fig, axes = plt.subplots()
      axes = sns.heatmap(uniform_data)
      
      fig, axes = plt.subplots()
      axes = sns.heatmap(uniform_data)
      

      输出:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-12
        • 1970-01-01
        • 2019-10-03
        • 2017-04-02
        相关资源
        最近更新 更多