【问题标题】:Group Box Plots for different numerical variables in one figure在一张图中为不同的数值变量分组箱线图
【发布时间】:2021-02-28 21:42:27
【问题描述】:

我有一个包含多个数值变量的数据框,我想为每个变量创建箱线图并将它们分组到一个图中。所以每个变量都应该有自己的箱线图,所有这些箱线图都应该在 1 个图中。我如何在 Seaborn 或 Matplotlib 中做到这一点?

非常感谢!

【问题讨论】:

  • 一个包含多个数值变量的数据框,您为什么不按照您的描述创建一个示例数据框并包含在您的问题中?

标签: python-3.x matplotlib seaborn data-visualization


【解决方案1】:

是的,你可以使用 seaborn:

df = pd.DataFrame(np.random.rand(100,4), columns=list('ABCD'))

num_col_list = ['A','B','C','D']
sns.boxplot(data=df.melt(value_vars=num_col_list),
            x='variable', y='value')

输出:

或者只使用 pandas/matplotlib:

df.boxplot(column=num_col_list)

输出:

【讨论】:

  • 我更喜欢子图而不是 1 个图表。这可能吗?
  • for x in num_col_list: fig,ax=plt.subplots(); df[[x]].boxplot(ax=ax)
【解决方案2】:

如果您使用pandas 数据框,您可以使用boxplot 函数:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(np.random.randn(10, 4),columns=['Col1', 'Col2', 'Col3', 'Col4'])
df.boxplot(column=['Col1', 'Col2', 'Col3'])
plt.show()

【讨论】:

  • 我更喜欢子图而不是 1 个图表。这可能吗?
猜你喜欢
  • 2021-01-01
  • 1970-01-01
  • 2023-01-31
  • 2014-10-04
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
相关资源
最近更新 更多