前回の記事ではpandasのplotメソッドを使って、折れ線グラフにデータをプロットする例を紹介したが、今回は棒グラフにプロットする例を紹介しよう。

サンプルデータセットの用意

必要なライブラリをインポートして、サンプルとなるシリーズを用意する。

import matplotlib as plt
import pandas as pd
import numpy as np

data = pd.Series(np.random.rand(16), index=list('abcdefghijklmnop'))
# a    0.029757
# b    0.272419
# c    0.447357
# d    0.314266
# e    0.597517
# f    0.764892
# g    0.741955
# h    0.277052
# i    0.680357
# j    0.966261
# k    0.634952
# l    0.427652
# m    0.525143
# n    0.373020
# o    0.159163
# p    0.088350
# dtype: float64
    

plot.barメソッドで縦棒グラフを描く

シリーズやデータフレームのplot.barメソッドを使うと、データを縦棒グラフへプロットすることができる。

この時、シリーズのインデックスはx軸の目盛として使われる。

data.plot.bar()

plot.barhメソッドで横棒グラフを描く

横棒グラフを描く場合は、plot.barhメソッドを使う。

シリーズのインデックスはy軸の目盛として使われる。

data.plot.barh()

データフレームから棒グラフへプロットする

データフレームから棒グラフへプロットする場合、各行の値はグルーピングされて描かれる。

df = pd.DataFrame(np.random.rand(6, 4),
                 index=['one', 'two', 'three', 'four', 'five', 'six'],
                 columns=pd.Index(['A', 'B', 'C', 'D'], name='Group'))
# Group         A         B         C         D
# one    0.024554  0.961763  0.605184  0.459349
# two    0.540856  0.446543  0.868348  0.761469
# three  0.240845  0.189343  0.592793  0.485723
# four   0.989029  0.216652  0.721413  0.924776
# five   0.193881  0.484769  0.260032  0.437120
# six    0.455335  0.194646  0.587198  0.539196

サンプルのデータフレームが用意できたらプロットを実行する。

df.plot.bar()

積み上げ棒グラフを描く

プロットする際の引数に、stacked=Trueを指定すれば積み上げ棒グラフをプロットすることができる。

df.plot.barh(stacked=True)