如何修改Flutter中SfCartesianChart柱状图的文本内容?
修改SfCartesianChart各类文本的方法
下面针对你图表里不同位置的文本,给出具体修改方式:
1. 修改图表标题
直接在ChartTitle组件中修改text字段更换内容,textStyle调整样式:
title: ChartTitle( text: '学生GPA统计', // 替换成你需要的标题文本 textStyle: TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: Colors.black87), // 自定义字体样式 ),
2. 修改X轴分类标签
方法一:直接修改数据源
把_SalesData的year字段替换为目标文本即可:
List<_SalesData> data = [ _SalesData('第1学期', 3.1), _SalesData('第2学期', 3.23), _SalesData('第3学期', 3.39), // ... 其余数据依次修改 ];
方法二:通过轴的labelFormatter自定义
不想改动数据源时,可在CategoryAxis中配置labelFormatter实现文本映射:
primaryXAxis: CategoryAxis( labelFormatter: (dynamic value, ChartAxisLabel label) { final labelMap = { '1': '第一学期', '2': '第二学期', '3': '第三学期', // ... 补充其余映射关系 }; return ChartAxisLabel(labelMap[value] ?? value, label.textStyle); }, ),
3. 修改柱子上的数据标签
默认显示Y轴数值,可通过dataLabelMapper自定义内容,dataLabelSettings调整样式:
ColumnSeries( // ... 其他原有配置 dataLabelMapper: (_SalesData sales, _) => '${sales.sales.toStringAsFixed(2)}', // 自定义显示文本,比如保留两位小数 dataLabelSettings: DataLabelSettings( isVisible: true, textStyle: TextStyle(color: Colors.white, fontSize: 11, fontWeight: FontWeight.w500), // 修改字体颜色、大小等 ), ),
4. 修改Tooltip提示文本
方式一:用format格式化显示
tooltipBehavior: TooltipBehavior( enable: true, format: '学期: point.x\nGPA: point.y', // 自定义提示内容格式 ),
方式二:用tooltipMapper完全自定义内容
tooltipBehavior: TooltipBehavior(enable: true), ColumnSeries( // ... 其他原有配置 tooltipMapper: (_SalesData sales, _) => '学期${sales.year}的GPA为${sales.sales.toStringAsFixed(2)}', ),
5. 修改Y轴数值标签
若要格式化Y轴的数值(比如统一保留1位小数),配置primaryYAxis的labelFormatter:
primaryYAxis: NumericAxis( labelFormatter: (dynamic value, ChartAxisLabel label) { return ChartAxisLabel(value.toStringAsFixed(1), label.textStyle); }, ),
内容的提问来源于stack exchange,提问作者sharon
相关产品推荐
相关产品推荐

