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

如何在Flutter中使用Syncfusion包实现预期的堆叠折线图?

Syncfusion Flutter堆叠折线图异常问题解决办法

核心问题排查与修复步骤

  • 必须使用正确的系列类型:别用普通的LineSeries,一定要用StackedLineSeries实现堆叠效果——普通折线系列不会做累加计算,自然出不来堆叠效果。
  • 确保数据源x轴值完全匹配:两个堆叠系列的x轴标签(比如日期、分类)要一一对应,数量、内容都得一致。要是某系列少了x值或者标签名称不对,就会出现线条错位、无法堆叠的情况。
  • 检查数据值有效性:堆叠折线图一般用于正数值累加,若某系列有0或负数,可能导致显示异常,确保所有y轴数据都是正数值。
  • 配置正确的坐标轴类型:如果x轴是分类数据(比如月份、类别),建议用CategoryAxis,避免因坐标轴类型不匹配导致对齐错误。

正确实现代码示例

先定义数据模型:

class ChartData {
  final String category;
  final double valueA;
  final double valueB;

  ChartData(this.category, this.valueA, this.valueB);
}

然后构建堆叠折线图:

SfCartesianChart(
  primaryXAxis: CategoryAxis(), // 分类x轴适配分类数据
  series: <ChartSeries<ChartData, String>>[
    StackedLineSeries<ChartData, String>(
      dataSource: [
        ChartData('1月', 35, 28),
        ChartData('2月', 28, 32),
        ChartData('3月', 34, 30),
        ChartData('4月', 32, 35),
        ChartData('5月', 40, 25),
      ],
      xValueMapper: (ChartData data, _) => data.category,
      yValueMapper: (ChartData data, _) => data.valueA,
      name: '系列一',
    ),
    StackedLineSeries<ChartData, String>(
      dataSource: [
        ChartData('1月', 35, 28),
        ChartData('2月', 28, 32),
        ChartData('3月', 34, 30),
        ChartData('4月', 32, 35),
        ChartData('5月', 40, 25),
      ],
      xValueMapper: (ChartData data, _) => data.category,
      yValueMapper: (ChartData data, _) => data.valueB,
      name: '系列二',
    ),
  ],
)

额外调试建议

如果调整后还是有问题,可以:

  • 把Syncfusion Flutter Charts包更新到最新稳定版,避免旧版本bug。
  • 打印两个系列的数据源,确认每个x标签对应的y值都正确传递到图表中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:15:39