设置 stats_flutter 时间序列图表中时间标签的格式以包含 hh:mm:ss

2024-04-24

是否可以格式化charts_flutter时间序列图表的x轴上的标签以进行显示hh:mm:ss. 这个答案 https://stackoverflow.com/a/51138909/1954993解释了如何格式化代码以显示月份和日期,但我需要显示的信息每分钟收集几次。

charts.AutoDateTimeTickFormatterSpec不允许指定秒数。上述问题的OP提到了DateTimeFactoryCharts_flutter 库中提到了这一点,但我也不确定如何使用它,或者它在这种情况下是否有任何用处。

new charts.TimeSeriesChart(
  getSeries(item),
  animate: false,
  primaryMeasureAxis: new charts.NumericAxisSpec(
    tickProviderSpec: new charts.BasicNumericTickProviderSpec(zeroBound: false)
  ),
  domainAxis: new charts.DateTimeAxisSpec(
    tickFormatterSpec: new charts.AutoDateTimeTickFormatterSpec(
      hour: new charts.TimeFormatterSpec(format: 'hh', transitionFormat: 'dd/MM hh:mm'),
    )
  ),
),

或者,我可以使用不同的图表来实现此功能吗?我看到charts.BarChart允许在 x 轴上使用字符串,但我特别需要一个折线图 - 如果上述格式不可能,是否有某种方法可以在折线图上指定字符串而不是日期时间?


因为设定在MinuteTimeStepper, 毫无意义。标签之间可以达到的最小间隔似乎是 5 分钟。这MinuteTimeStepper默认间隔为 5、10、15、20 和 30 分钟。

class MinuteTimeStepper extends BaseTimeStepper {
  static const _defaultIncrements = const [5, 10, 15, 20, 30];

它有一个构造函数,允许您传递自己的列表,但我不知道如何让它工作。

相反,我只是将其修改为const [1, 5, 10...现在以 1 分钟间隔绘制标签(如果有可用空间)。

鉴于最接近的标签绘制时间(即使进行此更改)是每分钟,因此没有必要包含秒数。

Taking 例子 https://google.github.io/charts/flutter/example/time_series_charts/simple并将系列数据修改为

  new TimeSeriesSales(new DateTime(2018, 8, 22, 13, 00, 00), 15),
  new TimeSeriesSales(new DateTime(2018, 8, 22, 13, 00, 30), 5),
  new TimeSeriesSales(new DateTime(2018, 8, 22, 13, 01, 00), 25),
  new TimeSeriesSales(new DateTime(2018, 8, 22, 13, 01, 30), 20),
  new TimeSeriesSales(new DateTime(2018, 8, 22, 13, 02, 00), 10),

给出的标签显示为1 00, 01 and 02(下午 1 点,过去 1 分钟和过去 2 分钟)由默认格式生成mm and h mm。请注意,正如预期的那样,半分钟时的点已绘制,但未标记。

如果您想要 24 小时格式的这些,您可以添加TimeFormatterSpec like

        minute: new charts.TimeFormatterSpec(
          format: 'mm', // or even HH:mm here too
          transitionFormat: 'HH:mm',
        ),
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置 stats_flutter 时间序列图表中时间标签的格式以包含 hh:mm:ss 的相关文章

随机推荐