【问题标题】:With seaborn plot different boxplots of the same dataframe in one plot?使用 seaborn 在一个图中绘制同一数据框的不同箱线图?
【发布时间】:2023-02-24 20:33:07
【问题描述】:

我想要一个图,在 9 个类别到 2 个时间点的箱线图下方显示一个额外的箱线图。 另外一个应该是所有 9 个类别的 2 个时间点的箱线图。这可能吗?

我已经做了什么:

创建一个熊猫 df。

data = {'Category':  ['waschen','anziehen','lesen', 'putzen', 'zahnpflege', 'essen', 'hobby', 'schlafen', 'spazieren', 'waschen',
                      'anziehen','lesen', 'putzen', 'zahnpflege', 'essen', 'hobby', 'schlafen', 'spazieren'],
        'T1': ['1', '6', '5','8', '4', '7', '5', '7', '1', '7', '3', '2', '1', '4', '7', '5', '7', '1'],
         'T2':['3', '7', '7','9', '8', '10', '8', '9', '3', '10', '9', '5', '3', '8', '9', '6', '7', '5']}

df = pd.DataFrame(data)

创建一个箱线图并根据我的喜好对类别进行排序。

sns.boxplot(y='Category', x='value', hue='variable', 
            data=df.melt(id_vars='Category', var_name='variable', value_name='value'),
           palette='Blues',
           order=['waschen', 'anziehen', 'zahnpflege', 'putzen', 'schlafen', 'essen', 'lesen', 'hobby', 'spazieren'])
plt.show()

现在的困难。绘制整个类别的 2 个时间点的箱线图。

sns.boxplot(data=data, x= 'value', y='variable',
            data=df.melt(var_name='variable', value_name='value'),
            palette='Reds')

不起作用:“SyntaxError:关键字参数重复:数据”

对不起,我是 Python 初学者。 x 轴应显示 T1 和 T2 的值,y 轴应在 T1 和 T1 中分组。这是我面临的第一个挑战。其次是将所有箱线图组合在一个图中。 seaborn 有可能还是我应该使用 matplotlib 子图?

【问题讨论】:

  • 在您的第三个/最后一个代码块中,您重复了data=

标签: python seaborn boxplot


【解决方案1】:

更改列类型,它对我有用:

df.T1 = df.T1.astype(int)
df.T2 = df.T2.astype(int)
sns.boxplot(y='Category', x='value', hue='variable', 
            data=df.melt(id_vars='Category', var_name='variable', value_name='value'),
           palette='Blues',
           order=['waschen', 'anziehen', 'zahnpflege', 'putzen', 'schlafen', 'essen', 'lesen', 'hobby', 'spazieren'])

【讨论】:

    猜你喜欢
    • 2020-07-23
    • 2016-02-05
    • 1970-01-01
    • 2018-09-08
    • 2016-10-31
    • 2016-10-30
    • 2020-03-08
    • 2020-09-20
    • 2021-02-02
    相关资源
    最近更新 更多