本記事では、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でグラフ内に文字を入れる方法
Pythonでグラフを作成する時、何か文字を入れたいってことよくありますよね。
Pythonで作ったグラフを画像にして、パワポやExcelで文字を上につけるってこともできますが、、なかなか面倒。。
Pythonでグラフ内に文字を入れる方法を紹介します。
グラフ内に文字を挿入したPythonのコードは次のようになります。
#グラフのオブジェクトを定義
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.text(x=2, y=17000, s='予算は減少傾向', color='black', ha='center', fontsize='13')
文字の挿入は、コードの最後の部分となります。ax.text()で設定しています。
その他のコードは、次の記事で解説しています。
ax.text()の引数の設定としては、次の通りとなります。
※引数は他にもありますが、最小限のものをピックアップしてます。
・x, y:文字を入れる位置
・s:挿入する文字
・color:文字の色
・ha:'center'は中央揃え('left':左揃え、'right':右揃え)
・fontsize:文字の大きさ
結果は、次のようになります。
グラフ内に、「予算は減少傾向」と表示されています。
グラフをただ作るだけではなく、一言伝えたい言葉を挿入するのはビジネスでも大事ですね。
Python/matplotlibでグラフ内に文字ボックスを入れる方法
グラフ内に文字を入れるだけだとシンプル過ぎて、あまり目立たないこともあります。
次は、文字に枠・ボックスをつける方法を紹介します。
パワポやExcelでいうと、オブジェクトを挿入して、そこに文字を書くイメージです。
文字を囲むボックスを入れるには次のように書きます。
#ボックス作成
dic_box = {
'facecolor' : 'lightblue',
'edgecolor' : 'black',
'boxstyle' : 'Round, pad=0.8',
'linewidth' : 1
}
#文字とボックスの挿入
ax.text(x=2, y=17000, s='予算は減少傾向',
color='black', ha='center', fontsize='13',
bbox=dic_box)
ax.text()の引数として、bboxをdict型で設定します。
bboxの主な設定内容は次の通りです。
・facecolor:ボックスの内部の色
・edgecolor:挿入する文字
・boxstyle:枠の種類と余白の大きさ。デフォルトは四角。'Round'で丸みを出す
・linewidth:ボックスの枠の太さ
グラフは次のようになります。
文字を囲んだボックスが表示されています。
これで、文字が強調され、グラフで伝えたいことのインパクトがアップしましたね。
こんな感じでグラフに文字とボックスを入れて一工夫するだけで、伝わりやすさが一段と上がります!
仕事でもグラフをただ作るだけでなく、文字を挿入して一言添えてみましょう
以上、Python / matplotlibでグラフ内に文字、ボックスを入れる方法を説明してきました。
最後まで読んでいただき、ありがとうございました。