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

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

よく読まれている記事

se-shikaku 1

  社内SEになるには資格って必要?社内SEでキャリアップするときにおすすめの資格は? 回答としては、 社内SEは、対人スキル、実務での対応力や最新情 ...

社内SEの仕事内容 2

  社内SEってどんな仕事なんだろ~ 検索しても転職サイトの記事ばかりでよく分からない・・   確かにそうですね。。実経験を基に、社内SE( ...

side-work-trial 3

  コロナで会社の経営も不安。。個人でお金稼ぎたいな~ 今、こう考えるサラリーマン、OLの方はごまんといると思います。   僕は、本業では社 ...

adsense-pass 4

【3記事で一発合格】Google AdSense申請に合格したブログ情報 こんにちは、いなサラ(@いなサラ|田舎の情シスサラリーマン)です。 2019年10月5 ...

-Python × グラフ

© 2020 inasala note