matplotlibで棒グラフを書く

今回は棒グラフを書きます。
フーリエ変換だとかもあるみたいですが、私がよく理解していないので。。。
他のグラフも、ギャラリーをに載ってるソースコードを読めば理解できるかと思います。
いろいろサンプルがあって非常に便利ですね。


以前のお話はこちら
matplotlibでグラフを書く - たこ焼き食べた.net

棒グラフ

棒グラフにはbar関数を使います。これは縦方向の棒グラフです。
横方向にはbarh関数を使います。

縦の棒グラフ

bar関数の引数は、

bar(棒の左端のx座標(left), 棒の高さ(bottom))

が最低限の条件となります。
更にいろいろと条件を指定することができ、色や線幅などの他にも、
棒の幅を指定するwidth, 一番下のy座標を決めるbottomなどがあります。
棒は、四角形で描画されますが、この四角形は以下の2点を結ぶ直線を対角線に取ります。

(left, bottom), (left + width, bottom + height)

詳細は公式を参考にしてください。
pyplot — Matplotlib 2.0.2 documentation


さて、ではサンプルです。

from pylab import *

x = arange(5)
y = (32, 24, 41, 2, 16)
width = 0.5

barh(x, y, width, color='r', edgecolor='k')

ylabel('nannka', fontname='serif')
xticks(x + width/2, ('#1', '#2', '#3', '#4', '#5'))
legend(("bar dayo",))

show()


x軸の目盛を指定するxticksは、公式のサンプルを参考にしました。
これは、棒の中央にラベルが来るように工夫しています。

横の棒グラフ

横方向に寝かした棒グラフです。
barh関数を使っています。
ここでは、一番下の値を変更しています(left引数)
これは、bar関数ではbottom引数に対応しています。

from pylab import *

x = arange(5)
y = (32, 24, 41, 2, 16)
left = (-20, -12, -24, -32, -13)
width = 0.5

barh(x, y, width, left=left, color='r', edgecolor='k')

xlabel('nannka', fontname='serif')
yticks(x + width/2, ('#1', '#2', '#3', '#4', '#5'))
legend(("bar dayo",))

show()