#はじめに
PythonにはMatplotlibというグラフを描くためのライブラリが用意されています。Matplotlibの初歩的な使い方を覚え書きとして記すとともに、東京の夏の気温の変化をグラフ化してみます。
#まずやってみる
import matplotlib.pyplot as plt
plt.plot(X, Y)
# X:X軸の配列 Y:Y軸の配列
これだけでグラフは描けます。
例えば、$x^3$のグラフを描いてみます。
X = [n for n in range(1,100)]
Y = [(x-50)*x**2 for x in X]
plt.plot(X, Y)
2つ以上のグラフを重ねることもできます。
Z = [x*(x-40)*(x-80) for x in X]
plt.plot(X, Y)
plt.plot(X, Z)
#東京の夏の気温調査
気象庁に過去の気象データがある。(過去の気象データ・ダウンロード)
これを年別に8月の平均気温をMatplotlibを使ってグラフ化してみる。
折角なので Pandas を使ってグラフの元データを抽出してみることにした。
※ ダウンロードしたCSVファイル
上記のCSVファイルをPandasで読み込んでみる。(Pandasで処理できるようにヘッダをアルファベットに変更している)
import pandas as pd
df = pd.read_csv("tokyo.csv")
df
気温(temp)に値の無い年があるため、これを dropna() で取り除く。
df.dropna()
更に、8月だけを取り出して、X軸(年月)、Y軸(月平均気温)を作って、Matplotlibでグラフを描いてみる。
X = df.dropna().query('year.str.contains("\\/8")')['year']
Y = df.dropna().query('year.str.contains("\\/8")')['temp']
plt.plot(X,Y)
X軸(年月)が読めないので、横幅を広げて、縦表示に変更してみる。
plt.figure(figsize=(16, 5))
plt.xticks(rotation='vertical')
plt.plot(X,Y)
年を追うごとに気温が上昇しているように見えます。
上記のグラフに札幌、那覇のデータも加えてみます。
df3 = pd.read_csv("naha.csv")
X3 = df3.dropna().query('year.str.contains("\\/8")')['year']
Y3 = df3.dropna().query('year.str.contains("\\/8")')['temp']
df5 = pd.read_csv("sapporo.csv")
X5 = df5.dropna().query('year.str.contains("\\/8")')['year']
Y5 = df5.dropna().query('year.str.contains("\\/8")')['temp']
東京を青、札幌を緑、那覇を赤でグラフ表示してみます。
plt.figure(figsize=(16, 5))
plt.xticks(rotation='vertical')
plt.plot(X,Y,color='blue')
plt.plot(X3,Y3,color='red')
plt.plot(X5,Y5,color='green')
グラフを見た限りでは、東京が徐々に那覇の気温に近づいて行ってます。
一方で札幌は少し気温が上昇しているようにも見えますが、上り幅は東京ほどではない感じです。
#まとめ
Matplotlibの勉強を兼ねて東京の夏の基本調査をやってみました。
Matplotlibには、ここで使ったもの以外にもパラメーターが数多くあり、細かな制御ができるようです。
ただし、X軸の配列、Y軸の配列を用意して plot すればグラフが描ける点を押さえておけば、気軽で便利に使える道具です。
※全て Jupyter notebook 上で実行しています。