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

Apache Superset堆叠柱状图如何按数值排序内部堆叠分组

Time-series Bar Chart v2 堆叠柱内按人员步数值排序实现方案

组件没有提供一键开启堆叠内按数值排序的默认配置,但可以通过数据预处理配合自定义配置实现需求,具体操作如下:

  • 先按小时维度拆分原始步行步数数据集,对每个小时时段下的所有人员步数做降序排列,单独维护一份「时段-人员降序列表」的映射表,不要改动原始统计数据,避免总步数计算出错。
  • 找到组件配置面板中的系列排序项,把默认的stackOrder: 'alphabet'(按姓名字母排序)修改为custom,开启单堆叠柱的自定义排序模式。
  • 将提前整理好的排序映射表传入customSortCallback自定义排序回调,组件渲染每一根小时柱时,会按照回调返回的人员顺序从下到上堆叠柱块:排序越靠后的人员(也就是步数越高的)越靠近柱体顶部,刚好实现步数最高的人员显示在柱顶的效果。

如果遇到同一小时内两位人员步数完全一致的情况,可以在回调里补充二级排序规则(比如按人员ID排序),避免柱块渲染顺序随机跳动。

参考回调代码示例:

// 单堆叠柱自定义排序回调
customSortCallback: (stackItemList, currentHour) => {
  // hourPersonSortMap 为提前预处理生成的 小时->人员步数降序列表 映射
  const sortRule = hourPersonSortMap[currentHour];
  return sortRule.map(person => stackItemList.find(item => item.seriesName === person));
}

补充说明:如果当前使用的组件版本低于v2.8.0,会找不到customSortCallback配置项,升级到v2.8.0及以上版本即可使用该能力;如果暂时无法升级,也可以通过动态注册每个时段的人员系列实现相同效果,但数据量大时渲染性能会明显下降,不推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:24:41