颤动中的样条图

塔哈哈米斯

我试图制作一个可以从大列表中读取值的图表。感谢他,我从@MiftakhulArzak “包含双值的列表的折线图表示”那里得到了一些帮助。无论如何,我尝试实施建议的解决方案,但它并没有完全适合我,我认为这是因为我以某种方式搞砸了代码。


 static List x =[26.0,13.10,1.3,1.5,1.9,1.8,1.9,2.9,3.0,1.9,1.8,1.4,9.0,2.0,3.4,4.7,1.8,1.9,2.9,3.0,1.9,1.8,1.4,1.0,2.0,3.4,4.7];

  @override
  Widget build(BuildContext context) {

    final List<ChartData> chartData = [
      ChartData(4, x),


    ];
    List<SplineSeries> generateSplineSeries(List<ChartData> chartData){

      List<SplineSeries> splines = [];
      for(int i=0; i<chartData.first.y!.length; i++){
        splines.add( SplineSeries<ChartData, int>(
          dataSource: chartData,
          xValueMapper: (ChartData data, _) => data.x,
          yValueMapper: (ChartData data, _) => data.y![i]
        ));
      }
      return splines;
    }
    return Scaffold(
        body: Center(
            child: Container(
                child: SfCartesianChart(
                    series: generateSplineSeries(chartData),
                )
            )
        )
    );
  }
}
class ChartData {
  ChartData(this.x, this.y);
  final int x;
  final List? y;
}

使用此代码,我得到如下输出:在此处输入图像描述

如您所见,没有绘制折线图。你能指出我做错了什么吗

ABV

请用这个更新代码,

static List<double> x =[26.0,13.10,1.3,1.5,1.9,1.8,1.9,2.9,3.0,1.9,1.8,1.4,9.0,2.0,3.4,4.7,1.8,1.9,2.9,3.0,1.9,1.8,1.4,1.0,2.0,3.4,4.7];
  @override
  Widget build(BuildContext context) {

    final List<ChartData> chartData = getItems(x);
    List<SplineSeries> generateSplineSeries(List<ChartData> chartData){

      List<SplineSeries> splines = [];
      for(int i=0; i<chartData.first.y!.length; i++){
        splines.add( SplineSeries<ChartData, int>(
            dataSource: chartData,
            xValueMapper: (ChartData data, _) => data.x,
            yValueMapper: (ChartData data, _) => data.y![i]
        ));
      }
      return splines;
    }
    return Scaffold(
        body: Center(
            child: Container(
                child: SfCartesianChart(
                  series: generateSplineSeries(chartData),
                )
            )
        )
    );
  }

  List<ChartData> getItems(List<double> x) {
    List<ChartData> items  = [];
    int currentValue = 10;
    for(int i = 0; i< x.length ; i++){
      items.add(ChartData(currentValue, [x[i]]));
      currentValue+=10;
    }
    return items;
  }

它看起来像,我不确定你想实现这个还是别的。如果您想实现不同的目标,请在此处发表评论。

在此处输入图像描述

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章