我的数据框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)

其结果如下:
python - 在seaborn中订购boxplot x轴-LMLPHP
如何按平均误差对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)

在seaborn plot函数中为“order”参数传递users_sorted_average将给出所需的行为:
    ax = sns.boxplot(x="username", y="error", data=round_data,
                 whis=np.inf,ax=ax,color=c,order=users_sorted_average.index)

python - 在seaborn中订购boxplot x轴-LMLPHP

关于python - 在seaborn中订购boxplot x轴,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40514921/

10-12 13:04