
ビッグデータを使って統計分析がしたい! 【グラフ表示編】
目次
こんにちわ。井上です。
前回のブログで、そろそろグラフを表示したいと書きましたので、今回は基本的なグラフの表示をしていきたいと思います。
グラフを表示するために、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行目:
グラフの表示をします。
表示されるグラフは以下になります。
今回のまとめ
いかがでしたでしょうか。
たくさんあるグラフの種類の中から、今回は棒グラフを作成してみました。
その他のグラフを作成する際にも、オプションの設定はあまり変わらないと思いますので、参考にしていただければと思います。
次回は、データの分析をしてみようと思います。
《関連記事》
ビッグデータを使って統計分析がしたい! 【準備編】
ビッグデータを使って統計分析がしたい! 【データ取得編】

