データファイルを読み込んだ後に、そのデータをさくっとグラフにして可視化したいと思いますよね。この記事では、Pythonのmatplotlibモジュールを使って折れ線グラフを描画する方法を具体的に解説していきます。
グラフ描画の概要
Pythonを使ったグラフの描画方法はいくつかあります。
今回は、その中でも手っ取り早くグラフがかけるmatplotlibモジュールを使用した描画方法についてご説明します。
まずはmatplolibを使用するための準備方法を解説し、その後にグラフ描画の方法をサンプルコードと共に説明します。
matplotlibを使うための準備
matplotlibモジュールを使用するには、pip (Package Installer for Pythonの略らしい)を使って、モジュールをインストールする必要があります。
手順は簡単で、
1. pip自体のアップグレード(任意)
2. pipでmatplotlibをインストール
の2つだけです。
インストールが済めば、すぐに使用できるようになります。
順に見ていきましょう。
pip自体のアップグレード
そもそもpip (Package Installer for Python)が何かというと、名前の通りでpythonの各種パッケージを簡単にインストール・アップデートできるものです。
ターミナルにpipコマンドを入力してretrunキーを押すだけで、自動で色々してくれます。
まずはpip自体を最新のバージョンにアップグレードしましょう。
ターミナルを開いて、次のようにコマンドを入力し、returnキーを押してください。この時、cwdはどこでも大丈夫です。
pip install --upgrade pip
returnキーを押すと、色々な文字が流れてくると思いますが、最終的にSuccessfullyというワードが書かれていれば、無事にupgrade完了です。
すでに最新バージョンである場合は、already up-to-dateというワードが表示されると思います。
pipでmatplotlibモジュールをインストール
pipコマンドを用いれば簡単にmatplotlibがインストールできます。
次のようにターミナルにコマンドを入力して、returnキーを押してください。
pip install matplotlib
これもpipのアップグレードの時と同様で、最終的にSuccessfullyというワードが書かれていれば、無事にインストール完了です。
すでにインストールされている場合は、already satisfiedというワードが表示されると思います。
折れ線グラフの描画方法
データファイルの用意
グラフ描画のためにcsv形式のデータファイルを用意しました。
1ヶ月ごとの日中の平均気温が12ヶ月分格納されています。
このcsvファイルをDesktop/Dr.code/python/data-analysis/matplotlib-dotline
に置きます。
# averaged temperature in 2018 @ Kyoto city
# 01: month 02: averaged temperature in the daytime
1,3.9
2,4.4
3,10.9
4,16.4
5,20.0
6,23.4
7,29.8
8,29.5
9,23.6
10,18.7
11,13.5
12,8.2
プログラムの実装(サンプルコード)
いきなりですが、matplotlibでグラフを描画するコードは次のようになります。
plot.pyという名前でDesktop/Dr.code/python/data-analysis/matplotlib-dotline
に置きます。
import numpy as np
import matplotlib.pyplot as plt
# input
dataFile = 'AvrgTmp_Kyoto2018.csv'
month, ave_temperature = np.loadtxt(dataFile, delimiter=',', usecols=(0,1), unpack=True)
# plot
plt.plot(month, ave_temperature, marker='.', markersize=10)
plt.xlim(0.5,12.5)
plt.ylim(0,40)
plt.title('Average Temperature at Kyoto in 2018', fontsize=15)
plt.xlabel('month', fontsize=10)
plt.ylabel('average temperature (deg)', fontsize=10)
# save as pdf
plt.savefig('AvrgTmp_Kyoto2018.pdf', dpi=600)
# show
plt.show()
コードが書けたら、ターミナル上でcwdをDesktop/Dr.code/python/data-analysis/matplotlib-dotline
に変更し、$ python plot.py
とコマンド入力し、プログラムを実行しましょう。
出力結果
プログラムが正しく実行されると、上の画像のようなグラフが表示され、Desktop/Dr.code/python/data-analysis/matplotlib-dotline
にAvrgTmp_Kyoto2018.pdf
という名前のpdfファイルが生成されていると思います。
コードの解説
csvファイルの読み込みに関しては以前に解説記事を書いていますので、ここでの解説は省きます。
matplotlibを使うためには、冒頭にimport matplotlib.pyplot as plt
と記述する必要があります。このように書くことでplt
という略称で利用可能になります。
plt.plot(month,ave_temperature,marker='.', markersize=10)
これはグラフ描画の肝になるコードです。
x軸にmonthのデータ、y軸にave_temperatureのデータを利用しています。
また、marker='.'
と書くことで、グラフの点(marker)をドットにすることができます。
ここでは、markersizeを10に設定しています。サイズは自由に調整できます。
markerは他にもたくさんの種類があります。他のマーカーを使いたい方はmaplotlibのサイトを参照ください。
plt.xlim(0.5,12.5)
plt.ylim(0,40)
これらはx軸とy軸のメモリの両端の数値を設定するコードになります。
x軸は左端を0.5、右端を12.5に設定しています。
y軸は下端を0、上端を40に設定しています。
plt.title('Average Temperature at Kyoto in 2018',fontsize=15)
plt.xlabel('month',fontsize=10)
plt.ylabel('average temperature (deg)',fontsize=10)
これらはタイトルとx,yラベルを設定するコードです。
plt.savefig('AvrgTmp_Kyoto2018.pdf', dpi=600)
グラフを保存するためのコードです。
ここでは、'AvrgTmp_Kyoto2018.pdf'
と記述することでpdf形式で保存しています。
他には eps, pgf, png, ps, raw, rgba, svg, svgz の形式で保存可能です。
また、dpi=数字
で解像度も設定できます。
plt.show()
グラフを表示させるためのコードです。
グラフをすぐに確認したいときに便利です。