我如何从 Altair 分层排序或过滤此图?

How can I order or filter hierarchically this plot from Altair?

我一直在寻找有关如何在 Altair 上按层次排序或过滤此可视化的信息,但不幸的是。我的意思是,对条形图进行排序,从计数较多的值到计数较少的值。另外,过滤前十个以便我得到更好的图表。你们知道我怎样才能得到那个结果吗?

这是我的代码:

   alt.Chart(df).mark_bar().encode(
    x = alt.X('count()'),
    y = alt.Y('proveedor_nombre:N')
)

这是我的结果(我把它剪掉了,因为它太大了):

先谢谢大家了

您可以按照 Top K Items example in the Altair documentation, with a Window Transform followed by a Filter Transform:

alt.Chart(df).transform_aggregate(
  count='count()',
  groupby=['proveedor_nombre']
).transform_window(
  rank='rank(count)',
  sort=[alt.SortField('count', order='descending')]
).transform_filter(
  alt.datum.rank <= 10
).mark_bar().encode(
  x = alt.X('count:Q'),
  y = alt.Y('proveedor_nombre:N', sort='-x')
)