无法在 Altair 条形图中排序
Unable to sort in Altair bar-chart
无法让 Altair 对列进行排序。它似乎有自己的想法。尝试按 'count'.
排序
countries_df = pd.DataFrame(countries_top10, columns=["Country", "count"])
countries_df.sort_values(by=['count'], ascending=False, inplace=True)
alt.Chart(countries_df).mark_bar().encode(
x=alt.X('count', sort=alt.EncodingSortField(field='count', order='descending')),
y="Country"
).configure_axis(
labelFontSize=16,
titleFontSize=16).properties(
width='container').interactive()
输出
[1]: https://i.stack.imgur.com/bO70I.png
EncodingSortField
方法仅适用于序数或名义尺度;您的比例是定量的,因此排序顺序将遵循定量轴。
看来您的目标是反转域,您可以这样做:
x=alt.X('count', sort='descending'),
设法让它工作
alt.Chart(countries_df).mark_bar().encode(
x='count',
y=alt.Y('Country:N', sort='-x')
无法让 Altair 对列进行排序。它似乎有自己的想法。尝试按 'count'.
排序countries_df = pd.DataFrame(countries_top10, columns=["Country", "count"])
countries_df.sort_values(by=['count'], ascending=False, inplace=True)
alt.Chart(countries_df).mark_bar().encode(
x=alt.X('count', sort=alt.EncodingSortField(field='count', order='descending')),
y="Country"
).configure_axis(
labelFontSize=16,
titleFontSize=16).properties(
width='container').interactive()
输出 [1]: https://i.stack.imgur.com/bO70I.png
EncodingSortField
方法仅适用于序数或名义尺度;您的比例是定量的,因此排序顺序将遵循定量轴。
看来您的目标是反转域,您可以这样做:
x=alt.X('count', sort='descending'),
设法让它工作
alt.Chart(countries_df).mark_bar().encode(
x='count',
y=alt.Y('Country:N', sort='-x')