#Pythonでのグラフ描画
Pythonチャートを描く場合の定番は「matplotlib」ですが、その見た目のやや野暮ったい感じと、
表記法のややこしさが指摘されています。
そこで、この記事ではMatplotlibの機能をより美しく、またより簡単に実現するためのラッパー的存在である、「Seaborn」の使い方を取り上げます。
Seabornについてと、初歩的な使い方については下記リンクをご覧ください。
◆pythonで美しいグラフ描画 -seabornを使えばデータ分析と可視化が捗る その1
http://qiita.com/hik0107/items/3dc541158fceb3156ee0
#たくさんのグラフを一気に書く
本記事ではデータから属性の異なる複数のグラフを一気に描く方法について解説します。
例えば下記にようなイメージです。
『Walk』という属性ごとに x-step, y-positionの関係性を一気にグラフ化しています。
参考)
http://stanford.edu/~mwaskom/software/seaborn/examples/many_facets.html
わりとデータ分析の実務でも使いたいことが多く、かなり便利なテクニックです。
・『顧客セグメント』ごとの違いを見たい
・『事業部』ごとの売上推移を見たい
・『地域』ごとの顧客動向の変化を見たい
などなど、活用の場面はいくらでも考えられます。
#『Facet』
このように属性ごとに一気にグラフ化を行う手法は『Facet』と呼ばれます。
seabornでも、"Facetgrid"という名前の関数として実装されていますし、
RやPythonの著名なグラフ描画パッケージ『ggplot』にも『Facet』という機能があります。
#やり方
ではやり方を説明していきます。
必要な下記のライブラリをインポートしておきます
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
データを用意します。
seabornにはいくつかのデータセットがデフォルトでバンドルされているのでそれを使っていきましょう。
今回は『flights』というデータを使ってみます
df_flights = sns.load_dataset('flights')
df_flights.head(5)
headでみてみると、yearとmonthでひたすら縦に伸びたデータであることがわかります。
また、数値としては乗客数の推移が見れるデータであることが見て取れます。
year month passengers
0 1949 January 112
1 1949 February 118
2 1949 March 132
3 1949 April 129
4 1949 May 121
なお、同じデータを使ったヒートマップ分析もあります。
http://qiita.com/hik0107/items/67ad4cfbc9e84032fc6b
次に、下記のようにして描画を実行します。
grid = sns.FacetGrid(df_flights, col="year", hue="year", col_wrap=4, size=5)
grid.map(sns.pointplot, 'month', 'passengers')
sns.FacetGridで、どのような分割でいくつのグラフを描くかをまず定義します。
今回は df_flightsというデータの 'year'という属性ごとにグラフを描くと宣言しています。(col='year' の部分)
yearは12年分(12種類)で、col_wrap=4 によって、4x3 マスで描画されます。
hue='year' は色をオシャレにするためのオプションです。無くても問題ありません。
実行結果は以下のようになります。
年々乗客数が増えているのと、徐々に7~8月くらいのピークシーズンが顕在化してきているのが
見てわかります。
#こちらの記事も
pythonで美しいグラフ描画 -seabornを使えばデータ分析と可視化が捗る その1
http://qiita.com/hik0107/items/3dc541158fceb3156ee0
pythonで美しいグラフ描画 -seabornを使えばデータ分析と可視化が捗る その2
http://qiita.com/hik0107/items/7233ca334b2a5e1ca924
データサイエンティストに興味があるならまずこの辺りを見ておきな、って文献・動画のまとめ
http://qiita.com/hik0107/items/ef5e044d2f47940ba712