订购Altair中的条形图?

时间:2018-10-18 15:37:31

标签: python data-visualization altair

我如何订购我的条形图,使其处于从最大到最小的顺序?我尝试了以下代码,但未达到预期效果。

我希望条形按'b','a','c'(按计数)排序

df = pd.DataFrame([['a',2],['a',3],['b',4],['b',5],['b',4],['c',8]], columns=['Letters', 'Numbers'])

Letters Numbers
0   a   2
1   a   3
2   b   4
3   b   5
4   b   4
5   c   8

alt.Chart(df).mark_bar().encode(
   alt.X('Letters:N'),
   alt.Y('count():Q', sort=alt.EncodingSortField(field='count', op='count', order='ascending')))

Output chart

1 个答案:

答案 0 :(得分:5)

sort关键字需要应用于要排序的轴-这里是X轴。

alt.Chart(df).mark_bar().encode(
   alt.X('Letters:N', sort=alt.EncodingSortField(field="Letters", op="count", order='ascending')),
   alt.Y('count():Q'))