You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Polars中Altair堆叠水平条形图自定义排序无效问题求助

解决方案

Altair里,color.sort只负责图例的排序,堆叠条形的顺序需要靠order参数控制。

方法1:直接指定order参数

在绘图时添加order参数,和color.sort用相同的排序规则:

df.plot.bar(
    x=alt.X("sales"),
    y=alt.Y("cs_id"),
    color=alt.Color("pivot_col_name", sort=['West', 'South', 'East', 'North']),
    order=alt.Order("pivot_col_name", sort=['West', 'South', 'East', 'North'])
)

方法2:把列转为有序分类类型

先在Polars中将pivot_col_name设置为有序分类,Altair会自动沿用这个顺序,不用在绘图时重复设置:

df = df.with_columns(
    pl.col("pivot_col_name").cast(pl.Categorical).cat.set_ordering(['West', 'South', 'East', 'North'])
)
df.plot.bar(
    x=alt.X("sales"),
    y=alt.Y("cs_id"),
    color="pivot_col_name"
)

这样堆叠的条形就会按照指定顺序排列,图例顺序也会同步匹配。


内容的提问来源于stack exchange,提问作者ExactaBox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 01:27:10