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
相关产品推荐
相关产品推荐

