無料で自由に使える公開データを「オープンデータ」と呼びますが、日本でも多くのデータが公開されています。本連載では、統計ライブラリを利用してそうしたデータのグラフを描画する方法を紹介します。第1回の今回は、2025年の気温の推移を表すグラフを描画してみましょう。
オープンデータとは
オープンデータとは、誰でも自由に利用できるデータのことです。そうしたデータの多くは、商用・非商用を問わず使えて、再利用や再配布が可能です。政府や自治体が中心となって公開していることが多く、社会課題の解決やビジネス創出に役立つものとなっています。
冒頭で紹介したように、日本でも多くのオープンデータが公開されています。代表的なのは、気象庁が公開している「過去の気象データ」、総務省が公開している国勢調査の統計データ、地方自治体や国土地理院が公表している防災データや指定避難場所データなどがあります。
また、世界に目を向けると、世界銀行が提供するGDPなどの経済データ、各国の温室効果ガスの排出量データ、国連が提供する世界人口や国際移民および難民のデータなどがあります。
代表的なオープンデータへのリンク
具体的にいくつかのオープンデータを実際に確認してみましょう。大抵は、ExcelファイルやCSVファイルといった形式で提供されており、それらは表計算ソフトで開けるようになっています。こうしたデータは自由に利用できるので、うまく活用したいものです。
- 気象庁「過去の気象データ」( https://www.data.jma.go.jp/risk/obsdl/index.php )
- 「国勢調査の統計データ」( https://www.e-stat.go.jp/stat-search?page=1&toukei=00200521 )
- 国土地理院「指定避難場所データ」( https://hinanmap.gsi.go.jp/hinanjocp/hinanbasho/koukaidate.html )
- 国連データ「各国の人口・人口密度など」( https://data.un.org/ )
Pythonで年間平均気温グラフを描画しよう
連載の第1回となる今回は、Pythonで年間平均気温のグラフを描画してみましょう。グラフの描画方法を中心に紹介します。10年分の横浜の平均気温データをこちら( https://gist.github.com/kujirahand/30cafdd39e8d72c2fad793cc0d377165 )からダウンロードして利用します。
今回描画するデータは、以下のようなデータとなっています。
この10年分の平均気温データは、2015年6月1日から10年分のものです。これは、筆者が上記の気象庁の「過去の気象データ」から必要なデータを抽出して整形したものです。実際に各地のデータを自分でダウンロードする方法は、次回紹介します。
PythonでCSVを読み込んでグラフを描画しよう
それでは、さっそく、PythonでCSVファイルを読み込んでグラフを描画してみましょう。今回は、クラウド上でPythonを実行できる、Google Colaboratory(以後、Colabと略します)を利用してみましょう。
Colabを利用するには、Googleアカウントが必要になります。こちら( https://colab.research.google.com/ )にアクセスしたらGoogleアカウントでログインしましょう。そして、画面左下にある「ノートブックを新規作成」ボタンをクリックしましょう。
Colabが便利なのは、次の画面のように、テキストボックスにプログラムを記述した後、その左側にある実行ボタンを押すだけでプログラムを実行できる点にあります。
例えば、Pythonで100個の偶数を表示するプログラムは次のようになります。
", ".join([str(n * 2) for n in range(100)])
プログラムを入力して、テキストボックスの左側にあるボタンを押してみましょう。すると、Pythonのプログラムが実行されて、次のように表示されます。
グラフを描画するプログラム
それでは、グラフを描画するプログラムを作ってみましょう。下記のようになります。以下のプログラムをコピーしてテキストボックスに貼り付けて実行してみましょう。
# 10年分の平均気温が書かれたCSVファイルをダウンロード --- (※1)
! wget https://gist.githubusercontent.com/kujirahand/30cafdd39e8d72c2fad793cc0d377165/raw/9b1f8c5869cfae022ce4160a5867357aa7e5f105/kion10y.csv
# 日本語フォントを描画するためのライブラリを追加
! pip install japanize_matplotlib
# これ以降がPythonのプログラム --- (※2)
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib
# CSVファイルの読み込み --- (※3)
df = pd.read_csv('kion10y.csv', encoding='utf-8')
# 2025年のデータのみ抽出
y2025 = df[df['年月日'].astype(str).str.startswith('2025')]
# x軸のラベルを間引いて7日に1つだけ表示 --- (※4)
step = 7
xticks = y2025['年月日'][::step]
xlabels = xticks.tolist()
# グラフを描画 --- (※5)
plt.figure(figsize=(12, 6))
plt.plot(y2025['年月日'], y2025['平均気温'])
plt.xticks(xticks, xlabels, rotation=45)
plt.title('2025年の平均気温')
plt.ylabel('平均気温 (℃)')
plt.tight_layout()
plt.grid(True)
plt.show()
すると、下記のようなグラフが描画されます。
プログラムを少しずつ確認してみましょう。
(※1)では、10年分の平均気温が書かれたCSVファイルをColabの実行環境にダウンロードして、必要な追加ライブラリをインストールします。Colabでは外部のデータを手軽に取得したり、追加ライブラリを自由に利用できる仕組みになっています。
Colabには最初からPythonとその統計ライブラリがインストールされていますが、残念ながら日本語フォントがインストールされていません。そこで、(※1)の部分で日本語のグラフが描画できるように、japanize_matplotlibパッケージをインストールするように指示しました。
(※2)以降の部分がPythonのプログラムです。Colabではなく自分のPCにPythonをインストールして実行する場合には、Pythonに統計計算ライブラリのPandasやグラフ描画ライブラリのMatplotlibをインストールした上で、これ以降の部分だけのプログラムを作成します。
(※3)ではCSVファイルを読み込みます。ただし、CSVには10年分の平均気温データがあります。グラフに描画するには多すぎるため、ここで、2025年のものだけを抽出します。
(※4)では7日に1つだけラベルを描画するようにラベル情報を準備します。この処理を削ってもプログラムは動きますが、1日ごとにラベルを描画しようとして、X軸のラベルが重なって読みにくくなります。そこで、ここでラベルを間引く処理を記述します。
(※5)では、実際にグラフを描画します。plt.plotメソッドが実際にグラフを描画する処理です。ほかの部分はグラフのサイズやタイトル、軸のラベルなどの情報を指定するものです。
まとめ
以上、今回は、クラウド上でPythonを実行するColabを利用して、2025年の日別平均気温を描画してみました。グラフを眺めてみると、いろいろな気付きがあります。
例えば、3月後半に気温が大きく下がっている部分があります。温かくなってきていたのに急に寒くなって体調を崩した人が多くいたのを思い出しました。
このように、データを視覚化することで見えるものがあります。この連載では、今後、いろいろなデータを視覚化していきます。データをPythonでグラフ化して、趣味に仕事に役立てていきましょう。
自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2004年度未踏ユース スーパークリエータ認定、2010年 OSS貢献者章受賞。これまで50冊以上の技術書を執筆した。直近では、「大規模言語モデルを使いこなすためのプロンプトエンジニアリングの教科書(マイナビ出版)」「Pythonでつくるデスクトップアプリ(ソシム)」「実践力を身につける Pythonの教科書 第2版」「シゴトがはかどる Python自動処理の教科書(マイナビ出版)」など。