我的数据框round_data
看起来像这样:
error username task_path
0 0.02 n49vq14uhvy93i5uw33tf7s1ei07vngozrzlsr6q6cnh8w... 39.png
1 0.10 n49vq14uhvy93i5uw33tf7s1ei07vngozrzlsr6q6cnh8w... 45.png
2 0.15 n49vq14uhvy93i5uw33tf7s1ei07vngozrzlsr6q6cnh8w... 44.png
3 0.25 xdoaztndsxoxk3wycpxxkhaiew3lrsou3eafx3em58uqth... 43.png
... ... ... ...
1170 -0.11 9qrz4829q27cu3pskups0vir0ftepql7ynpn6in9hxx3ux... 33.png
1171 0.15 9qrz4829q27cu3pskups0vir0ftepql7ynpn6in9hxx3ux... 34.png
[1198 rows x 3 columns]
我想要一个箱线图,显示每个用户的错误,按其平均表现排序。我所拥有的是:
ax = sns.boxplot(
x='username',
y='error',
data=round_data,
whis=np.inf,
color='c',
ax=ax
)
which results into this plot:
如何按平均误差对 x 轴(即用户)进行排序?
我想出了答案:
grouped = round_data[round_data.batch==i].groupby('username')
users_sorted_average = (
pd.DataFrame({col: vals['absolute_error'] for col, vals in grouped})
.mean()
.sort_values(ascending=True)
)
Passing users_sorted_average
对于seaborn绘图函数中的“order”参数将给出所需的行为:
ax = sns.boxplot(
x='username',
y='error',
data=round_data,
whis=np.inf,
ax=ax,
color=c,
order=users_sorted_average.index,
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)