如何在 matplotlib (python)中更改字体?

这听起来是一个很简单的问题,但我没有找到任何有效的解决方案来改变字体(而不是字体大小)在一个情节与 matplotlib 在 python。

我找到了一些教程,可以通过修改 matplotlib 存储默认字体的文件夹中的一些文件来更改 matplotlib 的默认字体——参见 这篇博文——但是我正在寻找一个不那么激进的解决方案,因为我想在我的绘图中使用多种字体(文本、标签、轴标签等)。

287484 次浏览

假设您想要 Comic Sans 作为标题,Helvetica 作为 x 标签。

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


plt.title('title',**csfont)
plt.xlabel('xlabel', **hfont)
plt.show()
import pylab as plb
plb.rcParams['font.size'] = 12

或者

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

还可以使用 rcParams在全局范围内更改字体系列。

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

Matplotlib 的字体族参数列表是 给你

我更愿意雇佣:

from matplotlib import rc
#rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
rc('font',**{'family':'serif','serif':['Times']})
rc('text', usetex=True)

最后一行确保勾标签的字体也是正确的。

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