[英]matplotlib grouped bars in a bar graph
最簡單的方法是重置groupby數據框的索引並使用seaborn的factorplot。
import numpy as np
import pandas as pd
import seaborn as sns
# Setting up
group_A = ['Egypt', 'Russia', 'Uruguay', 'Saudi Arabia']
group_B = ['Spain', 'Portugal', 'Iran', 'Morocco']
group_C = ['France', 'Denmark', 'Australia', 'Peru']
team = group_A + group_B + group_C
group =['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C']
caps = np.random.randint(5, 50, 12)
caps_per_team_per_group = pd.DataFrame({ 'Caps': caps}, index=pd.MultiIndex.from_tuples(list(zip(group, team)), names=['Group', 'Team']))
# Reset index and plot
caps_per_team_per_group.reset_index(inplace=True)
g = sns.factorplot(x="Group", y="Caps", hue='Team', data=caps_per_team_per_group, kind="bar", palette="muted")
n [47]: caps_per_team_per_group
Out[47]:
Caps
Group Team
A Egypt 43
Russia 39
Uruguay 20
Saudi Arabia 49
B Spain 6
Portugal 8
Iran 32
Morocco 11
C France 14
Denmark 41
Australia 29
Peru 8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.