如何更改 seaborn barplot 中条形图的顺序


您可以使用以下方法更改海洋图中条形的顺序:

方法 1:对根据原始数据创建的 Barplot 中的条形进行排序

 sns. barplot (x=' xvar ', y=' yvar ', data=df, order=df. sort_values (' yvar '). xvar )

方法 2:对根据聚合数据创建的 Barplot 中的条形进行排序

 sns. barplot (x=' xvar ', y=' yvar ', data=df, order=df_agg[' xvar ']

以下示例展示了如何在实践中使用每种方法。

示例 1:对根据原始数据创建的 Barplot 中的条形进行排序

假设我们有以下 pandas DataFrame,其中包含有关公司各个员工的总销售额的信息:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' employee ': ['Andy', 'Bert', 'Chad', 'Doug', 'Eric', 'Frank'],
                   ' sales ': [22, 14, 9, 7, 29, 20]})

#view DataFrame
print (df)

  employee sales
0 Andy 22
1 Bert 14
2 Chad 9
3 Doug 7
4 Eric 29
5 Frank 20

我们可以使用以下语法创建条形图,其中条形根据销售额按升序排序:

 import seaborn as sns

#create barplot with bars sorted by sales values ascending
sns. barplot (x=' employee ', y=' sales ', data=df, order=df. sort_values (' sales '). employee )

要按降序对条形进行排序,只需在sort_values()函数中使用ascending=False

 import seaborn as sns

#create barplot with bars sorted by sales values descending
sns. barplot (x=' employee ', y=' sales ', data=df,
            order=df. sort_values (' sales ', ascending= False ). employee ) 

示例 2:根据聚合数据创建 Barplot 中的排序条

假设我们有以下 pandas DataFrame,其中包含有关公司各个员工的总销售额的信息:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' employee ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   ' sales ': [24, 20, 25, 14, 19, 13, 30, 35, 28]})

#view DataFrame
print (df)

  employee sales
0 to 24
1 to 20
2 to 25
3 B 14
4 B 19
5 B 13
6 C 30
7 C 35
8 C 28

我们可以使用以下语法来计算按员工分组的平均销售额

 #calculate mean sales by employee
df_agg = df. groupby ([' employee '])[' sales ']. mean (). reset_index (). sort_values (' sales ')

#view aggregated data
print (df_agg)

  employee sales
1 B 15.333333
0 to 23.000000
2 C 31.000000

然后,我们可以使用以下语法在seaborn中创建一个条形图,显示每个员工的平均销售额,条形图按升序显示:

 import seaborn as sns

#create barplot with bars ordered in ascending order by mean sales
sns. barplot (x=' employee ', y=' sales ', data=df,
            order=df_agg[' employee '], errorbar=(' ci ', False )) 

X 轴显示员工姓名,Y 轴显示每个员工的平均销售额。

其他资源

以下教程解释了如何在seaborn中执行其他常见功能:

如何在 Seaborn Barplot 上显示值
如何在 Seaborn 中创建分组条形图
如何设置 Seaborn 条形图中条形的颜色

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注