Python × グラフ

Python/matplotlibでグラフに横線・縦線を入れる方法

python-graph-line

本記事では、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/matplotlibでグラフに横線を入れる方法

テストデータのような予算管理表を年度毎に合計額を棒グラフにしたとき、金額の平均値や最大値のラインで横線を引きたいってありますね。

この時は、次のように書きます。

#グラフのオブジェクトを定義
fig, ax = plt.subplots(figsize=(8, 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=.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)

#横線を引く
ax.axhline(y=10000, xmin=0.05, xmax=0.95,
            color='red',
            lw=2,
            ls='--',
            alpha=0.6)

 

横線は設定は、最後のコードとなります。ax.axhline()で設定しています。

その他のコードは、次の記事で解説しています。

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

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

・y:横線を引くときのy軸の値。

・xmin:横線の左端の位置。グラフの横幅全体を1としたときの比率で設定。

・xmax:横線の右端の位置。設定はxminと同様。

・color、lw、ls、alpha:他の線に関する関数と共通の引数。それぞれ色、線の太さ、線のスタイル、透明度。

結果は、次のようになります。

 

横線 python

 

今回はy軸が10000のところで横線を引いてますが、NumPyのnp.mean( yの値のリスト )やnp.max( yの値のリスト ) を設定して、平均値や最大値で線も引くのに使えます。

コードは特に覚える必要はなく、ぜひぜひコピペで使い回しましょう。

 

Python/matplotlibでグラフに縦線を入れる方法

縦線は、横線と比べて使う頻度は少ないかもしれませんが、コードの書き方が似ているので、併せてご紹介します。

縦線は、上のコードの横線の部分を次のように書き換えます。

 

#縦線を引く
ax.axvline(x=1, ymin=0, ymax=0.95,
            color='blue',
            lw=4,
            ls='-',
            alpha=0.6)

 

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

縦線

 

縦線は、ax.axvline()を使います。横線はax.axhline()で似ているので、気をつけましょう!

縦線はvertical(垂直)のvで、横線はhorizon(水平)のhです。

引数の設定の仕方は、基本的に、xとyが入れ替わっただけです。

ただ、x軸は数値ではなく文字列のため、リストのインデックスで縦線の位置を設定することになります。

今回は、x=1なので、x軸のリストのインデックスが1である'2022年度'で縦線が引かれています。

※基本中の基本ですが、リストのインデックスはゼロからカウントします

 

こんな感じで、グラフに横線も縦線も簡単に引けますね。

 

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