【Python】JupyterNotebook + matplotlibで折れ線グラフを出力する
今回はAnaconda + matplotlibを使って折れ線グラフを出力します。
プログラミングの環境
Anaconda 5.3.0
Python 3.7.0
numpy 1.15.1
pandas 0.23.4
matplotlib 2.2.3
jupyter 1.0.0
使うデータ
日本が統計を開始してから2017年までの交通事故の統計データ
前準備
データ分析によく使われるpandas numpy matplotlibをライブラリとしてインストールしておく必要あります。
pandasライブラリはpythonの標準の配列機能より強力なものを使えます。
numpyライブラリは計算機能が強い。
matplotlibライブラリは図を表示するもの。
以上のライブラリが必要になります。
なお、今回はAnaconda5.3.0環境でのVersionになります。
Anacondaなら最初から3つのライブラリは入っています。
データを加工する
もともと入っているデータではちょっと表示がやりづらそうだったのでこんな感じで変更
和暦 =>(西暦に変換して) => AD 発生件数(件) => Incidents 負傷者数(人)=> Injured_person 死者数(人)=> Casualties
それ以外のものは削除しました。
これのデータをCSVとして変更しました。これらは
名前はh29_jiko.csvです。
AD,Incidents,Injured_person,Casualties 1948,21341,17609,3848 1949,25113,20242,3790 1950,33212,25450,4202 。。。。
こんな感じ
jupyter notebookコマンドにてjupyter notebookを起動しましょう。
(JupyterNotebookについてはまた今度)
最初のライン
import pandas as pd import numpy as np from matplotlib import pyplot as plt %matplotlib inline
%matplotlib inline はJupyterNote上でmatplotlibを表示するための設定です。
上記のコードを入力した状態でShift + Enterを押します。
ライブラリがうまくはいっていれば、問題なく次の行に進むはず。
2つ目のライン
jiko29 = pd.read_csv('h29_jiko.csv')
pd.read_csv()はpandasのcsvファイルを読み込む関数です。
h29_jiko.csvという名前でCSVファイルを同じディレクトリに保管しているので、このデータ呼び出し方で呼べます。
Shift + Enterでそのコードを実行。
3つ目のライン
plt.plot(jiko29['AD'],jiko29['Incidents'])
Shift + Enterでコード

と、このように簡単に折れ線グラフを出力できます。
2000年頭くらいから2010年くらいまでの事故数が増えて、それから右肩下がり?のようです。
3つ目のラインを編集
plt.plot(jiko29['AD'],jiko29['Injured_person'])をグラフ内に追加します。(負傷者数)
plt.plot(jiko29['AD'],jiko29['Incidents']) plt.plot(jiko29['AD'],jiko29['Injured_person'])

このように、データを重ねて表示することも可能です。
一回の事故に対して、負傷者が増えたってこと…であってるのかな?
4つ目にやりたかったけど出来なかったこと
死亡者数のデータを出力しようとすると…
plt.plot(jiko29['AD'],jiko29['Incidents']) plt.plot(jiko29['AD'],jiko29['Injured_person']) plt.plot(jiko29['AD'],jiko29['Casualties'])

緑色のグラフが死者数…だけど、さっぱりデータがわからない。

このデータだけ見てみると経緯がわかりやすい。
死者数はだんだんと減っていっている傾向にある、ということ。
二つ軸グラフが使えればデータわかりやすかったんだと思うけど、ちょっと今はわからない。
また調べてやってみよう。