【Python】Matplotlibパッケージを使ってリストデータを折れ線グラフ化する

Pythonを学ぶ

Matplotlibパッケージにあるライブラリを使えばグラフを描くことが出来ます。
今回は、データの数値をグラフ化する方法を学びたいと思います。

今回は、「折れ線グラフ」を出力するまでに学んだことを箇条書きで残しておきます。

matplotlib.pyplotモジュールを使う

Pythonでデータの数値をグラフ化するには、「matplotlib.pyplotモジュール」を使うことで簡単に折れ線グラフを描くことが出来ます。

Matplotlibパッケージは、標準のライブラリには含まれていませんがAnacondaをインストールしてある環境であれば既にインストール済みです

今回は、Anacondaをインストールしてある前提で進めていきます。
また、Jupyter Notebookを使用してPythonを使って実際にコードを描いていきます。

Anacondaインストール方法

折れ線グラフを描いてみよう

Anacondaを起動しJupyter Notebookにアクセスします。

[New]から[Python3]を選択し.ipyndファイルを作成します。
今回は、グラフを描きたいのでファイル名をgraph.ipyndにしました。

早速コードを書いていきます。

import matplotlib.pyplot as plt
data = [2, 1, 4, 3, 6]
plt.plot(data)
plt.show()

1行目のimport matplotlib.pyplot as pltは、matplotlib.pyplotを読み込みpltと別名をつけています。

2行目のdata = [2, 1, 4, 3, 6]は、折れ線グラフに表示するためのリストを作成しています。

3行目のplt.plot(data)は、折れ線グラフを描くための処理です。

4行目のplt.show()は、グラフを表示するための処理です。

コードを書き終わったら[Shift+Enter]で実行します。
するとこのような折れ線グラフが表示されるはずです。

グラフ

折れ線グラフの出力結果は、Y軸にはリストに入れた数値が出力されX軸はリストのインデックス番号となっています。

X軸とY軸で別々の数値をグラフ化したいとき

先程のコードの書き方だとX軸の値がインデックス番号になってしまいます。
インデックス番号ではなくX軸にもデータの値を入れたものを出力することが出来ます。

import matplotlib.pyplot as plt
x = [100, 200, 300, 400, 500]
y = [40, 60, 50, 80, 30]
plt.plot(x, y)
plt.show()

コードを書き終わったら[Shift+Enter]で実行します。
するとこのような折れ線グラフが表示されるはずです。

グラフ

リストを2つを作成することでplt.plot()を使いX軸Y軸それぞれの値を入れることが可能です。

基本的に折れ線グラフを作成する際、X軸とY軸とでそれぞれデータがあることが高いのでこのやり方はとても重要です。

グラフにタイトルをつけたりグリッドを表示したい

たった数行追加するだけで折れ線グラフにタイトルをつけたりグリッドを表示したりX軸Y軸のラベルを作成することが出来ます。

import matplotlib.pyplot as plt
x = [20, 21, 22, 23, 24]
y = [62, 68, 64, 63, 61]
plt.plot(x, y)
plt.title("Change in weight")
plt.xlabel("age")
plt.ylabel("body weight")
plt.grid(True)
plt.show()

5行目のplt.title("Change in weight")は、グラフのタイトルをつけています。

6行目のplt.xlabel("age")は、X軸のラベルをつけています。

7行目のplt.ylabel("body weight")は、Y軸のラベルをつけています。

8行目のplt.grid(True)は、Trueでグリッドを表示しています。

コードを書き終わったら[Shift+Enter]で実行します。
するとこのような折れ線グラフが表示されるはずです。

グラフ

タイトルやラベルに日本語を使わなかったのは日本語を使用すると文字化けが起こるからです。

後日、日本語で描画する方法をブログで紹介したいと思います。

まとめ

Matplotlibパッケージのmatplotlib.pyplotモジュールを使えば簡単に折れ線グラフを描くことができました。

matplotlib.pyplotモジュールを使えば折れ線グラフ以外にも棒グラフや散布図なども作成することが出来るのでデータを分析した際、グラフ化するための技術が今回基礎段階で身につきました。

今後やっていかなければならないのはデータをリストから値を取るのではなくExcelファイルやCSVファイルから抽出しグラフを描くことを学んでいきたいと思います。