【问题标题】:Plotting several boxplots from different dataframes in one graph在一张图中绘制来自不同数据框的多个箱线图
【发布时间】:2022-01-31 23:55:18
【问题描述】:

我正在尝试在一张图中绘制来自不同数据框的多个箱线图。每个数据帧都有不同的长度。

我正在做的是以下内容:

sns.boxplot(x=df1['Numbers'])
sns.boxplot(x=df2['Numbers'])
sns.boxplot(x=df3['Numbers'])
sns.boxplot(x=df4['Numbers'])

但是,这样做的结果是所有箱线图都一个接一个地绘制,无法区分任何东西。

你能帮我解决这个问题吗? 问候

【问题讨论】:

    标签: python dataframe seaborn boxplot


    【解决方案1】:

    您可以创建一个新的数据框,其中每个给定的数据框都有一个列。 Pandas 将用NaNs 填充列以补偿不同的长度。

    import matplotlib.pyplot as plt
    import seaborn as sns
    import pandas as pd
    import numpy as np
    
    df1 = pd.DataFrame({'Numbers': np.random.normal(.1, 1, np.random.randint(30, 100)).cumsum()})
    df2 = pd.DataFrame({'Numbers': np.random.normal(.2, 1, np.random.randint(30, 100)).cumsum()})
    df3 = pd.DataFrame({'Numbers': np.random.normal(.3, 1, np.random.randint(30, 100)).cumsum()})
    df4 = pd.DataFrame({'Numbers': np.random.normal(.4, 1, np.random.randint(30, 100)).cumsum()})
    
    combined_dfs = pd.DataFrame({'df1': df1['Numbers'],
                                 'df2': df2['Numbers'],
                                 'df3': df3['Numbers'],
                                 'df4': df4['Numbers']})
    sns.set_style('white')
    sns.boxplot(data=combined_dfs, palette='flare')
    sns.despine()
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2016-10-30
      • 2013-01-14
      • 2020-07-23
      • 2023-02-24
      • 2017-03-13
      • 2023-03-24
      • 2016-02-05
      • 2015-07-25
      相关资源
      最近更新 更多