[Python]美しいグラフを書く! その2:Matplotlibで棒グラフ

[Python]美しいグラフを書く! その2:Matplotlibで棒グラフ

いつも、Excelでグラフを作っている方。
綺麗なグラフまたは、決まったグラフを作るために何度もマウスをポチポチしていませんか?

もし、決まったグラフを毎回、Excelでポチポチ作っているのなら、
その作業をPythonにやらせて、作業効率をアップさせてみませんか?

Pythonではライブラリーを用いて様々なグラフの作図することができます。
具体的には、
https://matplotlib.org/gallery/index.html

https://seaborn.pydata.org/examples/index.html
こういったものです!

この記事では、公式サイトのサンプルのプログラムを分かりやすく説明していき、
Pythonではライブラリーを用いて様々なグラフを実際に作図することができるようになることを目指します。

とりあえず作図してみる

今回はこのような散布図を作図してみます。

このグラフのソースコードはここからダウンロードできます。

https://matplotlib.org/_downloads/1ae3a5bf2634cfb4bfd9b36b9d014c27/barh.py

“How fast do you want go today?”は今日はどれくらい早く行きたいですか?という意味です。
サンプルなのであまり気にしないでください。。。

棒グラフにエラーバーがくっついたとてもよく使われるスタイルのグラフですね。
何故か棒グラフが水平方向に伸びています。
あとで、棒グラフが垂直に伸びたグラフの書き方も説明します。

それでは、pythonでmatplotlibを用いた棒グラフの書き方を見ていきましょう。

必要なpython module

・matplotlib

・numpy

あとはPython3を用いています。

コードの解説

それではこのソースコードを頭から順番に解説していきます。

この2行はPythonのモジュールを呼び起こすコードです。
Numpyとmatplotlibを呼び起こしています。

これはコメントですね。

これは乱数のseed値を決めるコマンドです。
ここではseed値は19680801です。
今回はサンプルコードなので、どの人やっても全く同じ結果になるようにseed値を決定します。
もし、このコードを削除してプログラムを実行すると毎回異なる結果が出力されます。

これは、作図の設定をデフォルトに戻すコマンドです。
必ずしも必要はありませんが、複雑なプロットを何枚も描くときはあったほうがいいコマンドです。

ここで、新しい白紙のグラフを作ります。

ここはサンプルデータを読み込むところです。
今回は、乱数を用いてそれぞれのデータを作っています。
len(people)はlen()関数で、配列の長さを返します。
peopleは今回5人なので、5という値を返します。

np.arange()は数列を作るコマンドです。
np.arange(len(people))では、先ほど見たように、np.arange(5)という意味なので、
[0,1,2,3,4]
と5つの数字の配列を返します。

np.random.rand()は0から1までの乱数を返します。
()ないの数字を入力すると入力した数字の数の乱数を返します。

これが今回最重要のコマンドです。
このコマンドで棒グラフを描きます。
あとで詳しく説明します。

このコマンドではy_posの値にしたがって目盛を描きます。

y軸のラベルをセットするコマンドです。

y軸のラベルの場所を上から下に移動するコマンドです。

x軸のラベルをセットするコマンドです。

グラフのタイトルをセットするコマンドです。

ここまで書いてきたグラフを出力します。

今回の大事なコマンド plt.bar()またはplt.barh ()

上ではaxという名前の図を指定しましたが、
Mapplotlib.pyplotで散布図を描くコマンドはbar()または、barh ()です。

上の例はbarh()を使いましたが、
barh()のところをbar()に書き換えると、


このグラフを書くことができます。

正確には

のコマンドを使いました。
どこが変わったか探してみてください。

bar()またはbarh()の基本形は
bar(x,y)、barh(y,x)です。
ここで、xとyの要素の数は一致している必要があります。

今回使った、コマンドですが、

xerrはx方向のエラーバーを描くコマンドです。
yerrではy方向のエラーバーを描きます。
alignでは棒の位置を指定することができます。

まとめ

Matplotlibで棒グラフを作るときはbar()またはbarh()を使いましょう!

Pythonカテゴリの最新記事