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

TAGS :

matplotlibの円グラフの書式が変えられず困る

matplotlibの円グラフを使っていますよね。
書式に関して、困ったことがあったので、ここに残しておきます。
matplotlibの円グラフのデモサイトは こちら です。

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

Python

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'

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

Python

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" のサイトを見てみると、property に"fontproperties"パラメータがあることがわかります。

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

Python

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 にしてみました。
書式を設定した円グラフ