📜  使用 Seaborn 在Python中分组条形图

📅  最后修改于: 2022-05-13 01:55:40.937000             🧑  作者: Mango

使用 Seaborn 在Python中分组条形图

先决条件:Seaborn

在本文中,我们将讨论在Python中使用 Seaborn 制作分组条形图的方法。在此之前,有一些概念必须熟悉:

  • 条形图:当您有两个变量时,条形图非常有用,一个是数字变量,因此另一个可能是分类变量。条形图可以揭示它们之间的关系。
  • 分组条形图:当您有多个分类变量时,分组条形图很有用。 Python 的 Seaborn 绘图库可以轻松形成分组条形图。
  • Groupby: Pandas dataframe.groupby()函数用于根据某些条件将数据分组。 Pandas 对象可以在它们的任何轴上拆分。分组的抽象定义是提供标签到组名的映射。

程序

  • 导入库。
  • 加载或创建数据。
  • 使用聚合函数执行 groupby 。
  • 使用分组属性绘制条形图。

以下是解释相同的实现:

示例 1:

Python3
# importing packages
import seaborn as sb
  
# load dataset
df = sb.load_dataset('tips')
  
# perform groupby
df = df.groupby(['size', 'sex']).agg(mean_total_bill=("total_bill", 'mean'))
df = df.reset_index()
  
# plot barplot
sb.barplot(x="size",
           y="mean_total_bill",
           hue="sex",
           data=df)


Python3
# importing packages
import seaborn as sb
  
# load dataset
df = sb.load_dataset('tips')
  
# perform groupby
df = df.groupby(['size', 'day']).agg(mean_total_bill=("total_bill", 'mean'))
df = df.reset_index()
  
# plot barplot
sb.barplot(x="size",
           y="mean_total_bill",
           hue="day",
           data=df)


Python3
# importing packages
import seaborn as sb
  
# load dataset
df = sb.load_dataset('anagrams')
  
# perform groupby
df = df.groupby(['num1', 'attnr']).agg(mean_num3=("num3", 'mean'))
df = df.reset_index()
  
# plot barplot
sb.barplot(x="num1",
           y="mean_num3",
           hue="attnr",
           data=df)


输出:

示例 2:

蟒蛇3

# importing packages
import seaborn as sb
  
# load dataset
df = sb.load_dataset('tips')
  
# perform groupby
df = df.groupby(['size', 'day']).agg(mean_total_bill=("total_bill", 'mean'))
df = df.reset_index()
  
# plot barplot
sb.barplot(x="size",
           y="mean_total_bill",
           hue="day",
           data=df)

输出:

示例 3:

蟒蛇3

# importing packages
import seaborn as sb
  
# load dataset
df = sb.load_dataset('anagrams')
  
# perform groupby
df = df.groupby(['num1', 'attnr']).agg(mean_num3=("num3", 'mean'))
df = df.reset_index()
  
# plot barplot
sb.barplot(x="num1",
           y="mean_num3",
           hue="attnr",
           data=df)

输出: