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 にしてみました。