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

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

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

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

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

https://weather.goo.ne.jp/past/662/00000101/

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

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

## ソースコード

``` dart: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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481708/cf245280-216f-3867-5680-4836ac7b2589.png)


## 感想

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

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

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

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

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