ビッグデータを使って統計分析がしたい! 【グラフ表示編】
目次
こんにちわ。井上です。
前回のブログで、そろそろグラフを表示したいと書きましたので、今回は基本的なグラフの表示をしていきたいと思います。
グラフを表示するために、matplotlibというグラフ描画ライブラリを利用します。
※anacondaに標準ではいっているライブラリです。
まず描いてみる
とりあえずグラフを描画してみようと思います。
以下のコードを実行します。
import matplotlib.pyplot as plt
def graph_test1():
x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
plt.plot(x, y)
plt.show()
if __name__ == "__main__":
graph_test1()
実行します。

グラフが描画されました。
グラフ種類オプションの設定を何もしないと、折れ線でグラフ描画されるようです。
グラフの種類を設定してみる
グラフの種類を変更するには、先ほどのコードの6行目 plot の部分を変更します。
使う頻度が高そうな種類を以下にあげます。
他にもたくさん種類がありますので、ユーザーガイドを参考にしてみてください。
Matplotlib ユーザーガイド
日本語の設定
日本語の設定をしていきます。
これをやらないとX軸、Y軸のラベル名に日本語を設定した場合に文字化けします。
今回は、IPAexフォントを利用します。
インストールされていない場合には、ダウンロードしてPCにインストールして下さい。
インストール後に、matplotlibの設定ファイルを書き換える必要があります。
ファイルは、
anacondaをインストールしたフォルダ\Lib\site-packages\matplotlib\mpl-data\matplotlibrc になります。
font.family を検索し、 font.family : IPAexGothic に書き換えます。
※IPAexゴシックをインストールした場合になります。
次にフォントのキャッシュを削除します。
matplotlibはフォントをキャッシュしてもっているようなので、削除する必要があります。
削除するファイルは、
C:\Users\ユーザー名\.matplotlib\fontList.py3k.cache になります。
次回起動時に再作成され、フォントが適用されます。
その他オプションを設定してみる
今回は棒グラフを書きながら、説明していきます。
前回利用したデータから、2014年1月のデータを抽出して表示します。
まずはコードを見てみましょう。
import matplotlib.pyplot as plt
import mysql.connector
def graph_test():
con = mysql.connector.connect(host='localhost',
port=3306,
db='python_test_mysql',
user='root',
passwd='',
charset="utf8")
cur = con.cursor(buffered=True)
sql = "select @i:=@i+1 as rownum, sum(calc_value) as value"
sql += " from tbl1, (select @i:=0) as dummy"
sql += " where report_date between '2014/1/1' and '2014/1/31'"
sql += " group by report_date"
sql += " order by report_date"
cur.execute(sql)
rows = cur.fetchall()
x = []
y = []
for row in rows:
x.append(row[0])
y.append(int(row[1]))
cur.close()
con.close()
plt.xlim([0.5, max(x)+1])
plt.ylim([0, max(y)+5000])
plt.xlabel("日付")
plt.ylabel("使用量")
plt.title("電力使用量")
plt.legend(loc='upper right')
plt.bar(x, y, align="center", label="2014年1月")
plt.show()
if __name__ == "__main__":
graph_test()
6~22行目:
MySQLのデータベースからデータを取得します
27~29行目:
取得したデータをX軸、Y軸のそれぞれに設定しています
34行目:
X軸の開始と終了の値を設定しています。開始の値を1とすると、1つ目のデータのグラフが半分しか表示されません。見た目が格好わるいので、0.5から開始としています。
終了の値も同様なので、最終値+1しています。
35行目:
Y軸の開始と終了の値を設定しています。終了の値を設定しない場合、最大値がグラフの上限となり見にくいので設定しています。
36, 37行目:
X軸、Y軸のラベルを設定しています。
38行目:
グラフのタイトルを設定しています。
39行目:
凡例の表示場所を設定しています。
40行目:
引数1 X軸に表示するデータを設定しています。
引数2 Y軸に表示するデータを設定しています。
引数3 棒グラフの表示位置を設定しています。
引数4 凡例に表示する名前を設定しています。
※引数1、2は必須項目です。引数3以降は順番を問いません。
41行目:
グラフの表示をします。
表示されるグラフは以下になります。

今回のまとめ
いかがでしたでしょうか。
たくさんあるグラフの種類の中から、今回は棒グラフを作成してみました。
その他のグラフを作成する際にも、オプションの設定はあまり変わらないと思いますので、参考にしていただければと思います。
次回は、データの分析をしてみようと思います。
《関連記事》
ビッグデータを使って統計分析がしたい! 【準備編】
ビッグデータを使って統計分析がしたい! 【データ取得編】