【问题标题】:Format time labels in charts_flutter time series chart在charts_flutter时间序列图表中格式化时间标签
【发布时间】:2018-07-02 12:59:10
【问题描述】:

我在我的颤振应用中实现了一个时间序列图表,它显示了一段时间内的能量数据:

final List<charts.Series<TimeSeriesEnergy, DateTime>> seriesList = [
     new charts.Series<TimeSeriesEnergy, DateTime>(
        id: 'Energy',
        colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault,
        domainFn: (TimeSeriesEnergy p, _) => p.time,
        measureFn: (TimeSeriesEnergy p, _) => p.energy,
        data: data,
     )
];

final bool animate = true;

var chart = new charts.TimeSeriesChart<TimeSeriesEnergy>(
      seriesList,
      animate: animate,
);

我现在想更改 xAxis 上标签的格式,以便它们以小时和分钟显示时间,而不是默认的本地日期时间格式。 chart_flutter 库中的example 建议实现DateTimeFactory,但我不知道如何执行此操作。欢迎任何建议:)

【问题讨论】:

    标签: charts dart flutter


    【解决方案1】:

    为您的时间(域)轴添加DateTimeAxisSpec

    var chart = new charts.TimeSeriesChart<TimeSeriesEnergy>(
      seriesList,
      domainAxis: new charts.DateTimeAxisSpec(
        tickFormatterSpec: new charts.AutoDateTimeTickFormatterSpec(
          day: new charts.TimeFormatterSpec(
            format: 'dd',
            transitionFormat: 'dd MMM',
          ),
        ),
      ),
      animate: animate,
    );
    

    在此示例中,我将图表上的标签从美国默认的“Jun 25”、“27”、“29”和“Jul 1”更改为“25 Jun”、“27”、“29”和“ 7 月 1 日”。

    您也可以通过为每个格式添加额外的TickFormatterSpecs 来更改年、日和小时等格式。

    transitionFormat 在大值换行时使用,否则使用format。在我的示例中,transitionFormat 用于格式化第一个刻度(以便您可以看到月份),但不是 27 日或 29 日,因为它们是同一个月份。随着月份的变化,transitionFormat 再次用于 7 月 1 日。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 2020-08-12
    • 1970-01-01
    • 2015-05-21
    • 2021-04-12
    相关资源
    最近更新 更多