本記事では、Python / matplotlibで実例を使って、棒グラフを描く方法をご説明します。仕事ですぐに使えるソースコードも紹介します。
Pythonの実行環境
今回は、以下の実行環境でプログラムを実行しています。
・Python 3.7.6
・Jupyterlab 1.2.6
・Pandas:1.1.2
・matplotlib:3.3.2
実例としては、次のような予算管理表を使います。
ファイル名は「テストデータ.xlsx」で、シート名は「予算管理表」です。
■予算管理表
まずは、ライブラリをインポートし、今回扱う予算管理表をdfとして読み込んでおきます。
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib
%matplotlib inline
df = pd.read_excel('テストデータ.xlsx', sheet_name = '予算管理表')
※本記事では、Pythonのコードの下のコメントアウトは、出力結果を示しています。
本記事では、予算管理表の「2021年度」列、「2022年度」列、「2023年度」列の合計額の推移を、棒グラフで描くことを目標とします。
Python / matplotlibで棒グラフを描く方法【基本形】
まずは、Pythonで棒グラフを書く際の基本形を確認します。
棒グラフは、bar()を使い、第一引数に横軸の値、第二引数に縦軸の値を指定します。
もっとも基本的な形は、次の通りです。
plt.bar(['2021年度', '2022年度','2023年度'], [100, 200, 150])
plt.show()
ここでは基本形のため、データはテストのものとしてます。
このように、bar()を使って縦軸と横軸の値を指定するだけで、簡単に棒グラフが描けます。
Python / matplotlibで棒グラフを描く方法【実例】
それでは、実例の予算管理表のデータで棒グラフを作ります。
今回は、「2021年度」列、「2022年度」列、「2023年度」列の合計額の推移を描くので、横軸は年度、縦軸は年度の合計額となります。
Pythonでは次のように書きます。
#横軸の値
year_list = ['2021年度', '2022年度','2023年度']
#縦軸の値
[df[year].sum() for year in year_list]
縦軸の値は、リスト内包表記で書いています。
これは、リストの要素を繰り返し処理で記述するものです。(ここでは、詳細は割愛します。)
実務ではよく使うので、自分で自由に書けるようになると良いです。
それでは、早速グラフの書いていきます。
#グラフのオブジェクトを定義
fig, ax = plt.subplots(figsize=(10, 4))
year_list = ['2021年度', '2022年度','2023年度']
#横軸の値
x = year_list
#縦軸の値
y = [df[year].sum() for year in year_list]
#グラフの作成
ax.bar(x, y, color='lightsteelblue', width=0.5)
#グラフのタイトル、軸ラベルを設定
ax.set_title('予算の推移')
ax.set_xlabel('年度')
ax.set_ylabel('予算額')
#グラフの座標を設定
ax.grid(axis='x', color='blue', lw=0.5, linestyle='--', alpha = 0.2)
ax.grid(axis='y', color='blue', lw=0.5, linestyle='--', alpha = 0.2)
グラフは次のようになります。
pltをfigとaxesに置き換えて、グラフの作成してます。
今回は行いませんが、figとaxesを使うと、グラフを複数作成できるようになります。
参考Python / matplotlibで複数の円グラフを書く方法
グラフについて、いくつかの設定も追加しているので、それらを見ていきます。
【Pythonでのグラフ作成】グラフの色、幅
グラフの色と幅は、bar()の引数で、colorとwidthを使います。
色は、matplotlibの公式サイトから選んで書きます。
今回は、lightsteelblueを使ってます。
幅は、1が最大(隣の棒グラフとくっつく)として、小数点を設定します。デフォルトでは、0.8となっています。
【Pythonでのグラフ作成】グラフのタイトル、軸ラベル
グラフのタイトルと軸ラベルは、それぞれset_title()とset_xlabel()、set_ylabel()を使います。
引数としては、表示したい文字列を入れるだけでOKです。
axの次に書くことを忘れないでください。
【Pythonでのグラフ作成】グラフの座標
グラフの座標は、grid()を使います。
引数として、軸、色、線の幅、線のスタイル、透明度を指定します。
正直、これは毎回打っていると大変なので、次の書き方をいつもコピぺして使い回しでOKです。
ax.grid(axis='x', color='blue', lw=0.5, linestyle='--', alpha = 0.2)
点線にして、透明度を下げると、座標が目立ちすぎず良いと思います。
以上、Python / matplotlibで棒グラフを書く方法を実例を題材にして、説明してきました。
最後まで読んでいただき、ありがとうございました。