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

如何翻转Flutter Syncfusion柱状图的坐标轴,使星期在X轴、数值在Y轴

Syncfusion Flutter图表轴显示异常报错解决方案

报错根因

你互换xValueMapper和yValueMapper后报错是两个不匹配导致的:

  • 泛型不匹配:你声明的BarSeries<SalesData, String>第二个泛型参数规定了X轴数据类型为String,互换后xValueMapper返回的是int类型的销售额,类型不兼容直接抛出异常
  • 轴配置不匹配:你配置的primaryXAxis为仅支持字符串分类数据的CategoryAxis,primaryYAxis为仅支持数值的NumericAxis,互换映射值后数据类型和轴预期类型不匹配

正确实现方案

你想要的「底部X轴显示星期几、左侧Y轴显示数值」的效果不需要互换xValueMapper和yValueMapper,只需要把BarSeries替换为ColumnSeries即可:

注意:Syncfusion图表中BarSeries是横向柱图,X轴为垂直方向;ColumnSeries是纵向柱图,X轴为水平底部方向,和你预期的展示效果一致。

代码修改部分

仅需要替换series定义代码即可,其余逻辑无需改动:

series: <ChartSeries>[
  // 把BarSeries改为ColumnSeries
  ColumnSeries<SalesData, String>(
      name: 'Sales',
      dataSource: _salesData,
      xValueMapper: (SalesData sales, _) => sales.daysOfWeek,
      yValueMapper: (SalesData sales, _) => sales.sale,
      dataLabelSettings: DataLabelSettings(isVisible: true),
      enableTooltip: true),
],

可选优化

建议给SalesData的字段显式指定类型,避免后续出现隐式类型推断错误:

class SalesData {
  final String daysOfWeek;
  final int sale;

  SalesData(this.daysOfWeek, this.sale);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:45:08