Python × グラフ

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

python-line-graph

本記事では、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の実行環境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)

 

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

折れ線グラフ_実例

 

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

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

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

 

ax.plot()の引数の設定としては、次の通りとなります。

・第一引数:横軸の値。df.columnsでdfの列項目を設定

・第二引数:縦軸の値。df.iloc[ ]で行ごとの値を設定

・linewidth:線の太さ

・alpha:線の透明度

 

グラフのタイトル、軸ラベルなどの設定は、次の記事をみてみてください。

 

参考Pythonで棒グラフを作成する

 

以上、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