Python 3.x 如何在同一图形上绘制两组箱线图?
假设我在下面有一个示例数据帧:Python 3.x 如何在同一图形上绘制两组箱线图?,python-3.x,matplotlib,seaborn,boxplot,Python 3.x,Matplotlib,Seaborn,Boxplot,假设我在下面有一个示例数据帧: Division Home Corners Away Corners Bundesliga 5 3 Bundesliga 5 5 EPL 7 4 EPL 3 2 League 1 10 6 Serie A 3
Division Home Corners Away Corners
Bundesliga 5 3
Bundesliga 5 5
EPL 7 4
EPL 3 2
League 1 10 6
Serie A 3 3
Serie A 8 2
League 1 3 1
我想创建一个按除法分组的每场比赛总角球数的箱线图,但我希望主场角球和客场角球分开,但在同一个图上。类似于“色调”关键字的作用,但我如何实现
- 使用以下命令将数据重塑为长格式:
将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
导入seaborn作为sns
数据={'Division':['Bundesliga'、'Bundesliga'、'EPL'、'EPL'、'League 1'、'意甲'、'League 1'],
“家庭角落”:[5,5,7,3,10,3,8,3],
“客场角球”:[3,5,4,2,6,3,2,1]}
df=pd.DataFrame(数据)
#将数据转换为长格式
df.set_索引('Division',in place=True)
dfl=df.stack().reset_index().rename(列={'level_1':'corners',0:'val'})
#密谋
sns.boxplot('corners','val',data=dfl,hue='Division')
plt.图例(title='Division',bbox_to_anchor=(1.05,1),loc='左上角')
- 使用以下命令将数据重塑为长格式:
将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
导入seaborn作为sns
数据={'Division':['Bundesliga'、'Bundesliga'、'EPL'、'EPL'、'League 1'、'意甲'、'League 1'],
“家庭角落”:[5,5,7,3,10,3,8,3],
“客场角球”:[3,5,4,2,6,3,2,1]}
df=pd.DataFrame(数据)
#将数据转换为长格式
df.set_索引('Division',in place=True)
dfl=df.stack().reset_index().rename(列={'level_1':'corners',0:'val'})
#密谋
sns.boxplot('corners','val',data=dfl,hue='Division')
plt.图例(title='Division',bbox_to_anchor=(1.05,1),loc='左上角')
您可以
融化原始数据并使用sns.boxplot
:
sns.boxplot(data=df.melt('Division', var_name='Home/Away', value_name='Corners'),
x='Division', y='Corners',hue='Home/Away')
输出:
您可以融化原始数据并使用sns.boxplot
:
sns.boxplot(data=df.melt('Division', var_name='Home/Away', value_name='Corners'),
x='Division', y='Corners',hue='Home/Away')
输出: