在seaborn中订购boxplot x轴

时间:2016-11-09 19:54:18

标签: python matplotlib boxplot seaborn

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

导致这个情节: boxplot

如何通过平均误差对x轴(即用户)进行排序?

1 个答案:

答案 0 :(得分:8)

好吧,我找到了答案:

users_sorted_average

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

select te.customer_id, sum(t.tran_amt), count(*)
from tran_table t inner join
     tender_table te
     on t.?? = te.??
group by te.customer_id;

enter image description here