あけましておめでとうございます。
コロナに翻弄されつつも令和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),
];
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);
}
動作
こんな感じになりました。
感想
やっぱ今年は寒いんですね。
でも最低気温は去年の方が少し低かったのね
最高気温の方は2015年以来の10度切り
ちなみに去年今年と続けて最低気温が氷点下だけどその前は1985年
さらに1985年の前は1977年だそうです。
暑いのも嫌だけど、冷え性なので寒いのも嫌だぉ....
というわけで、令和4年のプログラミング初めは
東京元旦気温グラフ表示でした。
今年もよろしくおねがいいたします。