Python × グラフ

【仕事ですぐ使える】Python / matplotlibで棒グラフを描く方法

2020-10-25

python-bar-chart

本記事では、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)

 

グラフは次のようになります。

棒グラフ_実例

pltfigaxesに置き換えて、グラフの作成してます。

今回は行いませんが、figaxesを使うと、グラフを複数作成できるようになります。

参考Python / matplotlibで複数の円グラフを書く方法

グラフについて、いくつかの設定も追加しているので、それらを見ていきます。

 

【Pythonでのグラフ作成】グラフの色、幅

グラフの色と幅は、bar()の引数で、colorwidthを使います。

色は、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で棒グラフを書く方法を実例を題材にして、説明してきました。

最後まで読んでいただき、ありがとうございました。

よく読まれている記事

insta-auto-post 1

  インスタって自動で投稿できないのかな。いつもスマホで投稿するの大変だし・・ Pythonを使えば、インスタで自動で投稿できるよ!!特別に紹介するね ...

python-consult_1 2

  AI・機械学習、データサイエンティスト、、やっぱりこれからの時代Pythonは勉強すべきだよね!   その通り。Pythonは今後も伸び ...

【保存版】PythonでできるExcel操作のまとめ一覧 3

  Excelで作業するのって大変だな〜 なにか楽な方法ないかな〜   Excelの集計や単純作業は、Pythonで楽にできるよ!!この一覧 ...

python-works 4

ここでは、サイト管理者のいなサラがこれまでPythonで作ったものをご紹介します。 以下のリンクで、実際の作り方やソースコードを公開しているので、ぜひ参考にして ...

-Python × グラフ

© 2023 inasala note