在Altair中如何排序条形图?

14
我该如何让柱状图按值从大到小的顺序排序?我尝试了下面的代码,但结果与预期不符。
我希望柱子按计数的顺序排列为'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')))

输出图表

2个回答

17

需要将排序关键字应用于正在排序的轴上 - 在这里是X轴。

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

4

简单的替代方法,指定您想要按频道排序的方式:

alt.Chart(df).mark_bar().encode(
   alt.X('Letters:N', sort='-y'),
   alt.Y('count():Q'))

来自文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接