本記事では、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 = '予算管理表')
本記事では、予算管理表の「2021年度」列、「2022年度」列、「2023年度」列の合計額の推移を、折れ線グラフで描くことを目標とします。
Python / matplotlibで折れ線グラフを描く方法【基本形】
まずは、Pythonで折れ線グラフを書く際の基本形を確認します。
折れ線グラフは、plot()を使い、第一引数に横軸の値、第二引数に縦軸の値を指定します。
もっとも基本的な形は、次の通りです。
plt.plot(['2021年度', '2022年度','2023年度'], [100, 200, 150])
plt.show()
ここでは基本形のため、データはテストのものとしてます。
このように、plot()を使って縦軸と横軸の値を指定するだけで、簡単に折れ線グラフが描けます。
Python / matplotlibで折れ線グラフを描く方法【実例】
それでは、実例の予算管理表のデータで折れ線グラフを作ります。
今回は、テストデータの「件名」列で、同一の件名で集約した年度ごとの金額を、折れ線グラフで描いてみたいと思います。
列の値ごとに集約するには、groupby()を使います。
次の記事で解説してるので、そちらを読んでみてください。
参考Pythonで列のフィールド値ごとにグループ集計する方法(groupby)
本記事では、Python/Pandasのgroupby関数で列のフィールド値ごとにグループ集計する方法をご紹介します。 Pythonの実行環境 今回は、以下の実 ...
続きを見る
件名ごとの集約は、次のように書きます。
#年度のリストを定義
year_list = ['2021年度', '2022年度','2023年度']
#件名で集約する
df = df.groupby('件名').sum()[year_list]
集約した結果は、次の通りとなります。
それでは、横軸を年度として、縦軸を件名別の合計額の折れ線グラフを作成します。
早速コードは、次のように書きます。
#グラフオブジェクトの定義し、グラフのサイズを設定
fig, ax = plt.subplots(figsize=(10, 6))
#件名別の積み上げ棒グラフの作成
for i in range(len(df)):
ax.plot(df.columns,
df.iloc[i],
linewidth=1.5,
alpha=.7)
#グラフのタイトル・列ラベルを設定
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)
#グラフの凡例を設定
ax.legend(df.index.tolist(), borderaxespad=2)
グラフは次のようになります。
pltをfigとaxに置き換えて、グラフの作成してます。
今回は行いませんが、figとaxを使うと、複数のグラフを同時に作成できるようになります。
参考Python / matplotlibで複数の円グラフを書く方法
ax.plot()の引数の設定としては、次の通りとなります。
・第一引数:横軸の値。df.columnsでdfの列項目を設定
・第二引数:縦軸の値。df.iloc[ ]で行ごとの値を設定
・linewidth:線の太さ
・alpha:線の透明度
グラフのタイトル、軸ラベルなどの設定は、次の記事をみてみてください。
以上、Python / matplotlibで折れ線グラフを書く方法を実例を題材にして、説明してきました。
最後まで読んでいただき、ありがとうございました。