Ant Design Charts面积图系列值相对最后序列渲染异常如何解决
问题原因
- Ant Design Charts 面积图默认开启堆叠模式,配置项默认为
isStack: true。该模式下每个系列的渲染基线不是x轴的0刻度,而是同维度下前一个系列的数值顶部,系列的最终渲染高度是自身数值与前面所有系列数值的累加和,因此系列在数据数组中的顺序会直接决定它的最终渲染位置,和自身的绝对数值无关。220的target点位高于1558的actual点位的异常,就是因为target堆叠在了actual的上方,总高度为1558+220=1778,因此视觉上更高。 - 配置项
startOnZero: true仅控制y轴刻度的起始值,不会修改堆叠模式下的系列基线计算逻辑,因此无法解决该问题。 - 调整数据顺序后渲染看起来恢复正常,是因为target被放到了数组最后,堆叠顺序匹配了预期视觉效果,本质没有改变堆叠的计算逻辑。
解决方案
根据实际使用需求选择对应方案:
- 若需要三个系列独立展示,每个系列的高度完全对应自身的绝对数值(都从x轴0基线开始渲染):直接在图表配置中关闭堆叠即可,添加配置
isStack: false。 - 若确实需要堆叠展示总数值:可以提前对数据集按期望的堆叠顺序排序,常规逻辑是数值越小的系列越靠前放置,也可以通过
stackOrder配置项直接指定堆叠顺序,无需调整原始数据顺序。
内容的提问来源于stack exchange,提问作者Kieran Quinn
相关产品推荐
相关产品推荐

