python - 在一张图中绘制来自不同数据框的多个箱线图

标签 python dataframe seaborn boxplot

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

我正在做的是以下内容:

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

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

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

最佳答案

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

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()

boxplot of dataframes with different lengths

关于python - 在一张图中绘制来自不同数据框的多个箱线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70927004/

相关文章:

Python 避免双重 for 循环

python - 未找到 Seaborn 模块 'histplot'

python - 类型错误 : must be str or None, 不是框架

Python字符串模板替换为正则表达式组的字典?

r - 如何沿列拆分数据框,例如每第 n 列?

python - 如何将多列中的时间戳重新排序为单列python

python - 如何在 Python 中结合 Seaborn 中的两个热图,以便两者都显示在同一个热图中?

python - 如何按类别绘制平均值条形图

python - 如何创建二维 CellRendererToggle

r - 使用另一列中给定条件的两列组合展开 data.table