matplotlibの円グラフの文字の書式を変える

Pythonのmatplotlibの円グラフの文字を変更する方法を説明します。

円グラフを描いてみる

matplotlibの円グラフのデモサイトはこちらです。

デモサイト通りに、円グラフを描いてみます。

import matplotlib.pyplot as plt
import os
from datetime import datetime

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]

fig1, ax1 = plt.subplots()
ax1.pie(
    sizes,
    labels=labels,
    autopct='%1.1f%%',
    startangle=90,
    )

filename = 'pie_chart_' + datetime.today().strftime('%Y%m%d') + '_a.png'
graph_path = os.path.join(os.getcwd(), filename)
plt.savefig(graph_path)

円グラフができあがります。

matplotlib.pyplot.pieのパラメータに”fontproperties”パラメータが無い

書式の指定のためには、fontpropertiesだと思って実装するとエラーが出ました。

TypeError: pie() got an unexpected keyword argument 'fontproperties'

この実装だとエラーになります。

import matplotlib.pyplot as plt
import os
from datetime import datetime
from matplotlib.font_manager import FontProperties

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
fp = FontProperties(fname='MPLUSRounded1c-Black.ttf')

fig1, ax1 = plt.subplots()
ax1.pie(
    sizes,
    labels=labels,
    autopct='%1.1f%%',
    startangle=90,
    fontproperties=fp,
    )

filename = 'pie_chart_' + datetime.today().strftime('%Y%m%d') + '_b.png'
graph_path = os.path.join(os.getcwd(), filename)
plt.savefig(graph_path)

“textprops”パラメータで書式を変える

matplotlib.pyplot.pieのサイトを見てみると、fontpropertiesパラメータは存在せずtextpropsパラメータというものがあります。

textpropsのサイトを見てみると、プロパティにfontpropertiesパラメータがあることがわかります。

textpropsパラメータを使って、修正します。

import matplotlib.pyplot as plt
import os
from datetime import datetime
from matplotlib.font_manager import FontProperties

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
fp = FontProperties(fname='MPLUSRounded1c-Black.ttf')

fig1, ax1 = plt.subplots()
ax1.pie(
    sizes,
    labels=labels,
    autopct='%1.1f%%',
    startangle=90,
    textprops={
        'fontproperties': fp,
        },
    )

filename = 'pie_chart_' + datetime.today().strftime('%Y%m%d') + '_c.png'
graph_path = os.path.join(os.getcwd(), filename)
plt.savefig(graph_path)

円グラフの書式を設定できました。
フォントの種類をMPLUSRounded1c-Blackにしてみました。