Python超基礎5:データの図示

ここからは少し趣向を変えてデータの図示について考えてみる。

5. データの図示

図の表示についても、実はpandasではデータに対してplot関数やそれに関連する諸機能を用いることで、様々なグラフを簡単に作成することができる。

たとえば前回まで集計していたようなブランドごとの期間中の合計数量を図示することを考えると、先ほどまでは単に表示させることが目的だったのでd.groupby~とただ書いていたが、今回はそのブランドごとの合計のデータセットを新しくbrandという名前で変数化してみる。

				
					brand = d.groupby('ブランド名').sum().sort_values('数量')
				
			

この新しく作ったデータセットであるbrandを使って、まずはブランドごとの数量の棒グラフを作成する。これまでdというデータに対してgroupbyやsum、sort_values等の関数を当てていたのと同様に、plot関数を用いる(ただし、通常のplot関数は折れ線グラフなので、さらにplot関数の中に含まれている棒グラフのbar関数を使う)。

こういったグラフでは通常横軸と縦軸それぞれをx, yとして指定するが、今回横軸はgroupby関数でブランドごとにグループ化されているので、縦軸yのみを’数量’と指定する。

				
					brand.plot.bar(y='数量')
				
			

これで棒グラフ(bar chart)のプロットができた。

*ここでもし本来日本語で表示されるはずの文字列がすべて□□□…などと表示されている場合には、冒頭のjapanize_matplotlibが正しくimportされていない。

あるいは月ごとの変化を折れ線グラフで表してみる。

groupby(‘月’)で月ごとの合計を作成した上で、plot関数で数量の変化をみればいいわけだが、下のようにplotまで全て数珠つなぎに書くことも可能。

				
					d.groupby('月').sum().plot(y='数量')
				
			

この折れ線グラフでは5月に数量が極端に落ち込んでいるように見えるが、縦軸が135から始まっていることに注意したい。この軸の範囲も簡単に変更できる。今回はplot関数の中に縦軸(y)の範囲を変更する ylimオプションを付与して、0~200の範囲までを表示させてみると、

				
					d.groupby('月').sum().plot(y='数量', ylim=[0, 200])
				
			

これでy軸の範囲が0~200に変更された。それでもデータの限りでは多少の落ち込みがあるのは事実かもしれない。それに関しては時系列解析などを使って明らかにしていくことが必要。