簡単な問題のように聞こえますが、Pythonのmatplotlibで作成したプロットでフォント(フォントサイズではなく)を変更するための効果的なソリューションは見つかりません。
Matplotlibがデフォルトフォントを保存するフォルダ内のいくつかのファイルを変更することにより、matplotlibのデフォルトフォントを変更するためのチュートリアルをいくつか見つけました- このブログ投稿 を参照してください-しかし、私はより急進的な解決策を探していますプロットで複数のフォント(テキスト、ラベル、軸ラベルなど)を使用したい。
タイトルにComic Sans、xラベルにHelveticaが必要だとします。
csfont = {'fontname':'Comic Sans MS'}
hfont = {'fontname':'Helvetica'}
plt.title('title',**csfont)
plt.xlabel('xlabel', **hfont)
plt.show()
rcParams
を使用して、フォントファミリをグローバルに変更することもできます。
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "cursive"
# This will change to your computer's default cursive font
Matplotlibのフォントファミリー引数のリストは here です。
私は採用することを好む:
from matplotlib import rc
#rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
rc('font',**{'family':'serif','serif':['Times']})
rc('text', usetex=True)
import pylab as plb
plb.rcParams['font.size'] = 12
または
import matplotlib.pyplot as mpl
mpl.rcParams['font.size'] = 12
HelveticaフォントはWindowsに含まれていないため、使用するには.ttfファイルとしてダウンロードする必要があります。次に、このようにmatplotlibを参照できます(「crm10.ttf」をファイルに置き換えます)。
import os
from matplotlib import font_manager as fm, rcParams
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
fpath = os.path.join(rcParams["datapath"], "fonts/ttf/cmr10.ttf")
prop = fm.FontProperties(fname=fpath)
fname = os.path.split(fpath)[1]
ax.set_title('This is a special font: {}'.format(fname), fontproperties=prop)
ax.set_xlabel('This is the default font')
plt.show()
print(fpath)
は、.ttfを配置する場所を示します。
出力はここで見ることができます: https://matplotlib.org/gallery/api/font_file.html