首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在图表顶部水平显示图例名称(颤振图)

在图表顶部水平显示图例名称(颤振图)
EN

Stack Overflow用户
提问于 2022-07-19 12:17:53
回答 1查看 164关注 0票数 2

我使用这个SfCartesianChart在颤栗和这里,我想显示的传奇名字水平顶部的图表,如父亲,母亲,儿子和女儿。我不想竖直地展示它。我也想改变图标,它显示了传说的名字。我想把它显示在传奇名字前面的彩色填充框中。比如举个例子。

我该怎么做?请给我一些建议。

我想这样表现出来:

代码语言:javascript
复制
class _StackedBarState extends State<StackedBar> {
  late List<ExpenseData> _chartData;
  late TooltipBehavior _tooltipBehavior;

  @override
  void initState() {
    _chartData = getChartData();
    _tooltipBehavior = TooltipBehavior(enable: true);
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return SfCartesianChart(
      title: ChartTitle(text: "Chart Title"),
      legend: Legend(isVisible: true),
      tooltipBehavior: _tooltipBehavior,
      series: <ChartSeries>[
        StackedBarSeries<ExpenseData, String>(
            dataSource: _chartData,
            xValueMapper: (ExpenseData exp, _) => exp.expenseCategory,
            yValueMapper: (ExpenseData exp, _) => exp.father,
            dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
        name: 'father',color: Colors.green,width: 0.4 ,
        markerSettings: MarkerSettings(isVisible: true)),
        StackedBarSeries<ExpenseData, String>(
          dataSource: _chartData,
          xValueMapper: (ExpenseData exp, _) => exp.expenseCategory,
          yValueMapper: (ExpenseData exp, _) => exp.mother,
            dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
        name: "Mother",color: Colors.yellowAccent,width: 0.4 ,
            markerSettings: MarkerSettings(isVisible: true)),
        StackedBarSeries<ExpenseData, String>(
          dataSource: _chartData,
          xValueMapper: (ExpenseData exp, _) => exp.expenseCategory,
          yValueMapper: (ExpenseData exp, _) => exp.son,
            dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
        name: "son",color: Colors.red,width: 0.4 ,
            markerSettings: MarkerSettings(isVisible: true)),
        StackedBarSeries<ExpenseData, String>(
          dataSource: _chartData,
          xValueMapper: (ExpenseData exp, _) => exp.expenseCategory,
          yValueMapper: (ExpenseData exp, _) => exp.daughter,
            dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
        name: 'daughter',color: Colors.orange,width: 0.4 ,
            markerSettings: MarkerSettings(isVisible: true)),

      ],
      primaryXAxis: CategoryAxis(),
    );
  }

  List<ExpenseData> getChartData() {
    final List<ExpenseData> charData = [
      ExpenseData('others', 55, 30, 65, 80),
      ExpenseData('gaurav shankar', 25, 40, 56, 75),
      ExpenseData('bal kishor', 15, 50, 36, 89),
      ExpenseData('shashi singh', 45, 60, 56, 89),
      ExpenseData('santosh kumar', 30, 10, 60, 90),
    ];
    return charData;
  }
}

class ExpenseData {
  ExpenseData(
    this.expenseCategory,
    this.father,
    this.mother,
    this.son,
    this.daughter,
  );

  final String expenseCategory;
  final num father;
  final num mother;
  final num son;
  final num daughter;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-19 15:28:25

只需将Legend.position设置为LegendPosition.top,如下所示:

代码语言:javascript
复制
  legend: Legend(isVisible: true, position: LegendPosition.top),

其结果是:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73036783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档