Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振图:使用双刻度规格_Flutter_Dart - Fatal编程技术网

Flutter 颤振图:使用双刻度规格

Flutter 颤振图:使用双刻度规格,flutter,dart,Flutter,Dart,我试着做一个关于flutter的图表,我的数字是十进制的,但是图表flutter只允许我使用整数(int)刻度,这意味着我的图表变得非常难看 我试着用很多方法改变我的滴答声提供者,但它似乎不接受任何方式的双精度 有了这段代码,我可以生成一个很好的图形,但我只希望我的测量轴在3到4之间,我想要3.1/3.2/3.3 导入'dart:convert'; 以图表形式导入“包:图表\颤振/颤振.省道”; 进口“包装:颤振/材料.省道”; 导入“dart:async”; 将“package:http/ht

我试着做一个关于flutter的图表,我的数字是十进制的,但是图表flutter只允许我使用整数(int)刻度,这意味着我的图表变得非常难看

我试着用很多方法改变我的滴答声提供者,但它似乎不接受任何方式的双精度

有了这段代码,我可以生成一个很好的图形,但我只希望我的测量轴在3到4之间,我想要3.1/3.2/3.3

导入'dart:convert';
以图表形式导入“包:图表\颤振/颤振.省道”;
进口“包装:颤振/材料.省道”;
导入“dart:async”;
将“package:http/http.dart”导入为http;
导入“dart:math”;
类Graficos扩展了StatefulWidget{
@凌驾
_GraficosState createState()=>GraficosState();
}
类_graficostate扩展状态{
列表系列列表;
int qteMeses=6;
bool-baixou=false;
var jsonData;
List dados=List();
List precos=List();
双menorPreco=0;
双倍maiorPreco=0;
最终myController=TextEditingController();
@凌驾
void initState(){
super.initState();
_卡雷加();
}
Future\u Carregar()异步{
打印(“本地”);
var response=await_funcaoJson();
if(response.length!=null){
seriesList=wait_pegaDados();
}
返回“ok”;
}
@凌驾
小部件构建(构建上下文){
返回容器(
高度:MediaQuery.of(context).size.height,
宽度:MediaQuery.of(context).size.width,
child:jsonData==null?
容器():列(
儿童:[
容器(
高度:MediaQuery.of(context).size.height,
宽度:MediaQuery.of(context).size.width,
子级:新图表。TimeSeriesChart(序列列表,主要度量轴:新图表。数值轴规格(
视口:新图表。数值范围(menorPreco-0.3,maiorPreco+0.3),tickProviderSpec:
新图表。基本数字tickProviderSpec(desiredTickCount:1)),行为:[
新图表。PanAndZoomBehavior(),
新图表.范围注释([
新图表.RangeAnnotationSegment(新日期时间[2])、int.parse(新日期时间[0][0][pesquisas][qteMeses][data][u publicacao][qteMeses])、拆分(\/”[2])、int.parse((新日期时间[0][pesquisas][qteMeses][data][publicacao qteMeses][qteMeses])、拆分(\/”[1])、int.parse(新日期时间[0][qteMeses][['data\u publicacao'].toString()).split(“\/”[0]),
new DateTime.now(),charts.RangeAnnotationAxisType.domain),
新图表.LineAnnotationSegment(
maiorPreco,charts.RangeAnnotationAxisType.measure,
endLabel:'Maior Preco:$maiorPreco',
颜色:图表。材质调色板。灰色。阴影400),
新图表.LineAnnotationSegment(
menorPreco,charts.RangeAnnotationAxisType.measure,
StartAbel:'Menor preco:$menorPreco',
颜色:图表。材质调色板。灰色。阴影400),
]),
]),
),
],
),
);
}
列表_pegaDados(){
蒙塔格拉菲科();
menorPreco=预压缩还原(最小值);
maiorPreco=预扣减排量(最大值);
返回[
新图表系列(
id:“Preço”,
displayName:'Preço',
domainFn:(LinearSales sales,)=>sales.mes,
measureFn:(LinearSales sales,)=>sales.sales,
数据:护墙板,
)
];
}
Future montaGrafico()异步{
对于(变量i=qteMeses;i>=0;i--){
护墙板(
LinearSales(新日期解析(((jsonData['pesquisa_total'][0]['pesquisas'][i]['data_publicaco']).toString().split(\/”[2])、int.parse((jsonData['pesquisa_total'][0]['pesquisas'[i]['data_publicaco'])).toString().split(“\/”[1])、int.split((jsonData['pesquisau total'][0][0]],double.parse((jsonData['pesquisa_total'][0]['pesquisas'][i]['items'][0]['ranking'][0]['preco'].toString()).replaceAll(',','),
);
打印(int.parse(((jsonData['pesquisa_total'][0]['pesquisas'][i]['data\u publicacao']).toString()).split(“\/”[0]);
precos.add(double.parse((jsonData['pesquisa_total'][0]['pesquisas'][i]['items'][0]['ranking'][0]['preco'].toString()).replaceAll(',','));
}
}
var aux;
Future _funcaoJson()异步{
var data=wait http.get(
“我的秘密http”);
设置状态(){
jsonData=jsonDecode(data.body);
});
返回“Sucesso”;
}
}
线性类{
最终日期时间;
最终双倍销售;
LinearSales(this.mes,this.sales);
}
´´´

我发现了一些可以让看到这个答案的人感兴趣的东西。要在轴上显示double,您可以这样做:

在TimeSeriesChart()小部件中:

然后可以创建函数_createTickSpec():

列表_createTickSpec(){
列表_tickProvidSpecs=新列表();
双d=最小值;
而(d)
TimeSeriesChart(
      primaryMeasureAxis: new charts.NumericAxisSpec(
           tickProviderSpec: new charts.StaticNumericTickProviderSpec(
               _createTickSpec(),
           ),
      ),
),
List<charts.TickSpec<num>> _createTickSpec() {
    List<charts.TickSpec<num>> _tickProvidSpecs = new List<charts.TickSpec<num>>();
    double d = minVal;
    while (d <= maxVal) {
        _tickProvidSpecs.add(new charts.TickSpec(d,
            label: '$d%', style: charts.TextStyleSpec(fontSize: 14)));
        d += 0.1;
    }
}