我试图制作一个可以从大列表中读取值的图表。感谢他,我从@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;
}
如您所见,没有绘制折线图。你能指出我做错了什么吗
请用这个更新代码,
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] 删除。
我来说两句