0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

なんか今年、正月寒くない?

Last updated at Posted at 2022-01-02

あけましておめでとうございます。

コロナに翻弄されつつも令和4年
年が明けました。

しかし元旦ってこんなに寒かった?
夜とか寝る時めっさ寒いんですけど?

と思って調べたらこんなサイトがありました。

1961年からの元旦の東京での最高気温と最低気温です。
こういうのがあるとグラフ化したくなるのが人間ですよね。

というわけでガチガチのコーディングでドン!

ソースコード

temp_graph.dart
import 'package:flutter/material.dart';
import 'package:charts_flutter/flutter.dart' as charts;

class TempRainChart extends StatelessWidget {
  final List<charts.Series<dynamic, DateTime>> seriesList;
  final bool animate;

  // ignore: use_key_in_widget_constructors
  const TempRainChart(this.seriesList, {this.animate = false});

  factory TempRainChart.withSampleData() {
    return TempRainChart(
      _createSampleData(),
      animate: true,
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SizedBox(
        width: 1024,
        child: charts.TimeSeriesChart(
          seriesList,
          animate: animate,
          defaultRenderer: charts.LineRendererConfig(),
          customSeriesRenderers: [
            charts.LineRendererConfig(
              customRendererId: 'minTemp',
            ),
          ],
        ),
      ),
    );
  }

  static List<charts.Series<dynamic, DateTime>> _createSampleData() {
    //東京の元日の気温 ベタにハードコードw
    final newYearTempData = [
      TempWeather(DateTime(2022, 1, 1), 7.8, -1, 6),
      TempWeather(DateTime(2021, 1, 1), 10.5, -1.3, 6),
      TempWeather(DateTime(2020, 1, 1), 10.2, 3.2, 6),
      TempWeather(DateTime(2019, 1, 1), 10.7, 0.9, 6),
      TempWeather(DateTime(2018, 1, 1), 13, 0.4, 6),
      TempWeather(DateTime(2017, 1, 1), 13.8, 2, 6),
      TempWeather(DateTime(2016, 1, 1), 12.1, 3.6, 6),
      TempWeather(DateTime(2015, 1, 1), 6.6, 2.4, 6),
      TempWeather(DateTime(2014, 1, 1), 15.5, 3.1, 6),
      TempWeather(DateTime(2013, 1, 1), 9.6, 3, 6),
      TempWeather(DateTime(2012, 1, 1), 9.2, 2.9, 3),
      TempWeather(DateTime(2011, 1, 1), 10.8, 2.2, 6),
      TempWeather(DateTime(2010, 1, 1), 9.5, 0.2, 6),
      TempWeather(DateTime(2009, 1, 1), 10.6, 1.6, 6),
      TempWeather(DateTime(2008, 1, 1), 10.9, 1.8, 5),
      TempWeather(DateTime(2007, 1, 1), 8.9, 2, 5),
      TempWeather(DateTime(2006, 1, 1), 5.6, 0.9, 3),
      TempWeather(DateTime(2005, 1, 1), 8.8, 1.3, 6),
      TempWeather(DateTime(2004, 1, 1), 12.6, 7.6, 5),
      TempWeather(DateTime(2003, 1, 1), 6.5, 4.1, 3),
      TempWeather(DateTime(2002, 1, 1), 14.3, 2, 6),
      TempWeather(DateTime(2001, 1, 1), 10.8, 4.8, 6),
      TempWeather(DateTime(2000, 1, 1), 12.6, 6, 6),
      TempWeather(DateTime(1999, 1, 1), 9.1, 2, 6),
      TempWeather(DateTime(1998, 1, 1), 12.7, 3.4, 5),
      TempWeather(DateTime(1997, 1, 1), 15.9, 6.4, 3),
      TempWeather(DateTime(1996, 1, 1), 10.6, 1.9, 6),
      TempWeather(DateTime(1995, 1, 1), 10.9, 2.2, 6),
      TempWeather(DateTime(1994, 1, 1), 9.2, 3.7, 6),
      TempWeather(DateTime(1993, 1, 1), 10.5, 2.9, 6),
      TempWeather(DateTime(1992, 1, 1), 10.8, 3.2, 6),
      TempWeather(DateTime(1991, 1, 1), 9, 5.3, 0),
      TempWeather(DateTime(1990, 1, 1), 9.8, 1.4, 6),
      TempWeather(DateTime(1989, 1, 1), 12, 5.2, 4),
      TempWeather(DateTime(1988, 1, 1), 12, 4.1, 6),
      TempWeather(DateTime(1987, 1, 1), 9.5, 4, 6),
      TempWeather(DateTime(1986, 1, 1), 9.3, 6.5, 3),
      TempWeather(DateTime(1985, 1, 1), 9.4, -0.2, 6),
      TempWeather(DateTime(1984, 1, 1), 10.1, 0.9, 6),
      TempWeather(DateTime(1983, 1, 1), 10.2, 3.6, 6),
      TempWeather(DateTime(1982, 1, 1), 11.8, 2.4, 5),
      TempWeather(DateTime(1981, 1, 1), 8.9, 1.3, 6),
      TempWeather(DateTime(1980, 1, 1), 10.1, 4.1, 5),
      TempWeather(DateTime(1979, 1, 1), 10.4, 0.6, 6),
      TempWeather(DateTime(1978, 1, 1), 11.1, 7.3, 3),
      TempWeather(DateTime(1977, 1, 1), 5.4, -2.4, 5),
      TempWeather(DateTime(1976, 1, 1), 9.6, 0.8, 6),
      TempWeather(DateTime(1975, 1, 1), 5.6, 3, 0),
      TempWeather(DateTime(1974, 1, 1), 12.2, -0.9, 6),
      TempWeather(DateTime(1973, 1, 1), 10.8, 2.8, 6),
      TempWeather(DateTime(1972, 1, 1), 16.1, 4.2, 4),
      TempWeather(DateTime(1971, 1, 1), 10.5, 3.7, 6),
      TempWeather(DateTime(1970, 1, 1), 9, 1.8, 5),
      TempWeather(DateTime(1969, 1, 1), 7.9, 0.6, 6),
      TempWeather(DateTime(1968, 1, 1), 10, -1.9, 6),
      TempWeather(DateTime(1967, 1, 1), 4.1, 2.1, 0),
      TempWeather(DateTime(1966, 1, 1), 7.9, -1.2, 6),
      TempWeather(DateTime(1965, 1, 1), 11.2, 6.4, 3),
      TempWeather(DateTime(1964, 1, 1), 13.7, 0.8, 4),
      TempWeather(DateTime(1963, 1, 1), 10.4, -2.2, 6),
      TempWeather(DateTime(1962, 1, 1), 5.5, -1.4, 4),
      TempWeather(DateTime(1961, 1, 1), 7.9, -3.9, 6),
    ];![スクリーンショット 0004-01-02 14.22.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481708/d7c0c6bb-7fb3-183a-7a45-3d3b806eb2f1.png)


    return [
      charts.Series<TempWeather, DateTime>(
        id: 'MaxTemp',
        colorFn: (datum, index) => charts.MaterialPalette.blue.shadeDefault,
        domainFn: (TempWeather temp, _) => temp.day,
        measureFn: (TempWeather temp, _) => temp.max,
        data: newYearTempData,
      ),
      charts.Series<TempWeather, DateTime>(
        id: 'MinTemp',
        colorFn: (datum, index) => charts.MaterialPalette.red.shadeDefault,
        domainFn: (datum, index) => datum.day,
        measureFn: (datum, index) => datum.min,
        data: newYearTempData,
      )..setAttribute(
          charts.rendererIdKey,
          'minTemp',
        ),
    ];
  }
}

class TempWeather {
  final DateTime day;
  final double min;
  final double max;
  final int weather; //晴=2, 曇=1, 雨=0 で計算(今回不使用)
  TempWeather(this.day, this.min, this.max, this.weather);
}

動作

こんな感じになりました。

スクリーンショット 0004-01-02 14.22.55.png

感想

やっぱ今年は寒いんですね。
でも最低気温は去年の方が少し低かったのね
最高気温の方は2015年以来の10度切り

ちなみに去年今年と続けて最低気温が氷点下だけどその前は1985年
さらに1985年の前は1977年だそうです。

暑いのも嫌だけど、冷え性なので寒いのも嫌だぉ....

というわけで、令和4年のプログラミング初めは
東京元旦気温グラフ表示でした。

今年もよろしくおねがいいたします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?