web-dev-qa-db-ja.com

matplotlib(python)でフォントを変更するには?

簡単な問題のように聞こえますが、Pythonのmatplotlibで作成したプロットでフォント(フォントサイズではなく)を変更するための効果的なソリューションは見つかりません。

Matplotlibがデフォルトフォントを保存するフォルダ内のいくつかのファイルを変更することにより、matplotlibのデフォルトフォントを変更するためのチュートリアルをいくつか見つけました- このブログ投稿 を参照してください-しかし、私はより急進的な解決策を探していますプロットで複数のフォント(テキスト、ラベル、軸ラベルなど)を使用したい。

52
SirC

タイトルにComic Sans、xラベルにHelveticaが必要だとします。

csfont = {'fontname':'Comic Sans MS'}
hfont = {'fontname':'Helvetica'}

plt.title('title',**csfont)
plt.xlabel('xlabel', **hfont)
plt.show()
68
aidnani8

rcParamsを使用して、フォントファミリをグローバルに変更することもできます。

 import matplotlib.pyplot as plt
 plt.rcParams["font.family"] = "cursive"
 # This will change to your computer's default cursive font

Matplotlibのフォントファミリー引数のリストは here です。

36
morepenguins

私は採用することを好む:

from matplotlib import rc
#rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
rc('font',**{'family':'serif','serif':['Times']})
rc('text', usetex=True)
6
guhur
import pylab as plb
plb.rcParams['font.size'] = 12

または

import matplotlib.pyplot as mpl
mpl.rcParams['font.size'] = 12
3
nagordon

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

1
bPiMin