数値を可視化!
matplotlibで多種多様なグラフを実現

matplotlib

データ分析において膨大な数値の羅列から、規則性や関連性を人力で見つけ出すのは至難の技です。データをきれいに視覚化できれば、規則性や関連性を見つけるだけでなく、プレゼンテーションで分析に詳しくない人を説得させるのにも使用することができます。今回説明したいmatplotlibはpythonの視覚化に特化したライブラリです。もちろん同じようなグラフをExcelでも作成できます。しかし、プログラミングを使っているので、マニュアルクリック操作による手間を省くことができます。さらに同じグラフを他のデータに適用することも簡単にできたり、元データの変更にも柔軟に対応できるという利点があります。公式サイトの説明もわかりやすいのですが、情報が多岐に渡っているため、今回は私なりに基本的に必要と思われる情報をピックアップし、簡単な例を使いながらjupyter notebook上で多彩な表現方法を試してみます。



ライブラリの読み込み

jupyter notebookを開き、基本的なデータ分析に必要なnumpy・pandasを読み込みます。jupyter内でグラフを表示するために「%matplotlib inline」の表記が必要なので忘れずに記載しておきましょう。seabornは必須ではありませんが、読み込んでおくとそれだけでグラフがリッチ?な感じになります。seabornは独自の機能があるのですが、今回はmatplotlibの表記に統一します。また、グラフ内で日本語を使えるようにフォントの指定もしておきましょう。

グラフのベースの描画

まず、グラフのベースを描画してみます。かなり多彩な設定が可能なので、できるだけ多くの設定が表現できるようにコードを書いてみました。表現できなかった部分はググってみてください。公式サイトに他のパラメータも載っているので、下記と同じように引数で指定すれば簡単に実現できます。

graph1
explain_graph_parameter

figure

グラフを描画します。サイズ・色などの細かい指定ができますが、今回は一番使うであろうsizeの変更をしてみました。

title

名前通りタイトルを表示します。文字のサイズ・位置の指定もできます。

axis

軸の範囲指定をします。[x最小,x最大,y最小,y最大]の順で入力すると、その範囲のグラフが描画されます。

xticks・yticks

軸の目盛の間隔や、どの位置で表示させるか自由に表現することができます。

xlabel・ylabel

軸のラベル(どういった数量を表しているか)を表記することができます。

legend

凡例を表記できます。引数locに以下のパラメータを入力すれば、凡例の位置を変更することが可能です。また、どうしてもグラフ線とかぶってしまう場合、枠外にもって行くことも可能です。引数bbox_to_anchorで位置をうまい具合に調整しましょう。

文字による指定 コードによる指定
‘best’ 0
‘upper right’ 1
‘upper left’ 2
‘lower left’ 3
‘lower right’ 4
‘right’ 5
‘center left’ 6
‘center right’ 7
‘lower center’ 8
‘upper center’ 9
‘center’ 10

subplot

複数のグラフを表示し比較することが可能です。

subplot

折れ線グラフの描画(plot)

主に時系列のデータの変化を比較する際に使用されます。

plot

棒グラフの描画(bar)

主に数量や大きさを比較するのに使用されます。

bar

ヒストグラムの描画(hist)

主にデータの分布をみるのに使用されます。

hist

散布図の描画(scatter)

主に2つの項目の相関関係をみるのに使用されます。今回は傾向を把握しやすいよう単回帰直線も加えました。

scatter

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする