Flutter 平移和放大时间序列条形图-图表\u颤振

Flutter 平移和放大时间序列条形图-图表\u颤振,flutter,flutter-web,Flutter,Flutter Web,我正在使用图表来创建颤振中的一些时间序列条形图。我在寻找一种方法,一次显示受控数量的缩放条,并为其余条提供一个滑块。 我可以使用BarCharts()完成上述操作,但不能使用TimeSeriesCharts()。我尝试了以下链接中提出的建议,其中提出了类似的问题: 但它们都没有对这一观点产生任何影响。有没有办法在酒吧里只展示5天 这是我的密码 import 'package:bar_wow/subscriber_series.dart'; import 'package:charts_fl

我正在使用图表来创建颤振中的一些时间序列条形图。我在寻找一种方法,一次显示受控数量的缩放条,并为其余条提供一个滑块。 我可以使用BarCharts()完成上述操作,但不能使用TimeSeriesCharts()。我尝试了以下链接中提出的建议,其中提出了类似的问题:

  • 但它们都没有对这一观点产生任何影响。有没有办法在酒吧里只展示5天

    这是我的密码

    import 'package:bar_wow/subscriber_series.dart';
    import 'package:charts_flutter/flutter.dart' as charts;
    import 'package:flutter/material.dart';
    
    
    class SubscriberChart extends StatefulWidget{
      final List<charts.Series<SubscriberSeries, DateTime>> data;
      final bool animate;
    
      SubscriberChart(this.data, this.animate);
      
      @override
      State<StatefulWidget> createState() => new _SelectionCallbackState();
    
    }
    
    class _SelectionCallbackState extends State<SubscriberChart> {
      DateTime _time;
      Map<String, num> _measures;
      
      _onSelectionChanged(charts.SelectionModel model) {
        final selectedDatum = model.selectedDatum;
    
        DateTime time;
        final measures = <String, num>{};
    
        if (selectedDatum.isNotEmpty) {
          time = selectedDatum.first.datum.time;
          selectedDatum.forEach((charts.SeriesDatum datumPair) {
            measures[datumPair.series.displayName] = datumPair.datum.subscribers;
          });
        }
    
        setState(() {
          _time = time;
          _measures = measures;
        });
      }
    
      @override
      Widget build(BuildContext context) {
        final children = <Widget>[
          new Container(
            height: 400,
            padding: EdgeInsets.all(20),
            child: Card(
              child: Padding(
                padding: const EdgeInsets.all(8.0),
                child: Column(
                  children: <Widget>[
                    Expanded(
                      child: new charts.TimeSeriesChart(
                        widget.data,
                        animate: widget.animate,
                        defaultRenderer: new charts.BarRendererConfig<DateTime>(
                          groupingType: charts.BarGroupingType.groupedStacked,
                          //barRendererDecorator: new charts.BarLabelDecorator<String>(),
                        ),
                        defaultInteractions: false,
                        behaviors: [
                          new charts.SelectNearest(), new charts.DomainHighlighter(),
                          new charts.ChartTitle(
                            'Response Time',
                            behaviorPosition: charts.BehaviorPosition.top,
                            titleOutsideJustification: charts.OutsideJustification.start,
                            innerPadding: 18
                          ),
                          new charts.ChartTitle(
                            'Time →',
                            behaviorPosition: charts.BehaviorPosition.bottom,
                            titleOutsideJustification:
                            charts.OutsideJustification.middleDrawArea),
                          new charts.ChartTitle(
                            'Aggregate →',
                            behaviorPosition: charts.BehaviorPosition.start,
                            titleOutsideJustification:
                            charts.OutsideJustification.middleDrawArea),
                          new charts.SeriesLegend(),
                          new charts.SlidingViewport(),
                          new charts.PanAndZoomBehavior(),
                        ],
                        domainAxis: new DateTimeAxisSpec(
                          viewport: charts.DateTimeExtents(start: DateTime(2020,5,7), end: DateTime.now().add(Duration(days: 5 ))),
                        ),
                        selectionModels: [
                          new charts.SelectionModelConfig(
                            type: charts.SelectionModelType.info,
                            changedListener: _onSelectionChanged,
                          )
                        ],
                      ),
                    ),
                  ],
                ),
              ),
            ),
          ),
        ];
    
        if (_time != null) {
          children.add(new Padding(
              padding: new EdgeInsets.only(top: 5.0),
              child: new Text(_time.toString())));
        }
        _measures?.forEach((String series, num value) {
          children.add(new Text('$series: $value'));
        });
    
        return new Container(child:Padding(padding:EdgeInsets.all(10),child:Column(children: children),),);
      }
    }
    
    import'package:bar_wow/subscriber_series.dart';
    以图表形式导入“包:图表\颤振/颤振.省道”;
    进口“包装:颤振/材料.省道”;
    类SubscriberChart扩展StatefulWidget{
    最终清单数据;
    最后的布尔动画;
    SubscriberChart(this.data,this.animate);
    @凌驾
    State createState()=>new _SelectionCallbackState();
    }
    类_SelectionCallbackState扩展状态{
    日期时间;
    地图测量;
    _onSelectionChanged(charts.SelectionModel模型){
    最终选定数据=模型。选定数据;
    日期时间;
    最后措施={};
    if(selectedDatum.isNotEmpty){
    时间=所选的datum.first.datum.time;
    已选择的数据格式((charts.seriesdatam datumPair){
    度量值[datumPair.series.displayName]=datumPair.datum.subscribers;
    });
    }
    设置状态(){
    _时间=时间;
    _措施=措施;
    });
    }
    @凌驾
    小部件构建(构建上下文){
    最终子女=[
    新容器(
    身高:400,
    填充:边缘设置。全部(20),
    孩子:卡片(
    孩子:填充(
    填充:常数边集全部(8.0),
    子:列(
    儿童:[
    扩大(
    孩子:新图表(
    widget.data,
    动画:widget.animate,
    defaultRenderer:new charts.dererConfig(
    groupingType:charts.BarGroupingType.groupedStacked,
    //BallenderCorator:新图表。BarlabelCorator(),
    ),
    默认交互:false,
    行为:[
    新建图表。选择最近的(),新建图表。DomainHighlighter(),
    新图表。图表标题(
    “响应时间”,
    behaviorPosition:charts.behaviorPosition.top,
    标题外部对齐:charts.OutsideJustification.start,
    内部填充:18
    ),
    新图表。图表标题(
    ”“是时候了→',
    behaviorPosition:charts.behaviorPosition.bottom,
    标题外部理由:
    图表。外部对齐。中间绘图区域),
    新图表。图表标题(
    "总量",→',
    behaviorPosition:charts.behaviorPosition.start,
    标题外部理由:
    图表。外部对齐。中间绘图区域),
    新图表。系列图例(),
    新图表。滑动视口(),
    新图表。PanAndZoomBehavior(),
    ],
    domainAxis:新的DateTimeAxisSpec(
    viewport:charts.DateTimeExtents(开始:DateTime(2020,5,7),结束:DateTime.now().add(持续时间:5天)),
    ),
    选择型号:[
    新建charts.SelectionModelConfig(
    类型:charts.SelectionModelType.info,
    changedListener:_onSelectionChanged,
    )
    ],
    ),
    ),
    ],
    ),
    ),
    ),
    ),
    ];
    如果(_time!=null){
    添加(新的填充)(
    填充:仅限新边缘组(顶部:5.0),
    子:新文本(_time.toString());
    }
    _度量?.forEach((字符串系列,数值){
    添加(新文本(“$series:$value”);
    });
    返回新容器(子容器:Padding(Padding:EdgeInsets.all(10),子容器:Column(子容器:children),,);
    }
    }