【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'])
緑色のグラフが死者数…だけど、さっぱりデータがわからない。
このデータだけ見てみると経緯がわかりやすい。
死者数はだんだんと減っていっている傾向にある、ということ。
二つ軸グラフ
が使えればデータわかりやすかったんだと思うけど、ちょっと今はわからない。
また調べてやってみよう。