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

n3h0vuf2  于 2023-03-03  发布在  Python
关注(0)|答案(6)|浏览(268)

这听起来是一个简单的问题,但我没有找到任何有效的解决方案来改变字体(不是字体大小)在一个绘图与matplotlib在python。
我找到了一些教程,可以通过修改matplotlib存储其默认字体的文件夹中的一些文件来更改matplotlib的默认字体-参见this blog post-但我正在寻找一个不太激进的解决方案,因为我希望在绘图中使用多种字体(文本、标签、轴标签等)。

mefy6pfw

mefy6pfw1#

假设您希望标题为Comic Sans,x标签为Helvetica。

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

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

sd2nnvve2#

您还可以使用rcParams全局更改字体系列。

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

matplotlib的字体系列参数列表在这里。

xhv8bpkk

xhv8bpkk3#

我倾向于使用:

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

最后一行确保刻度标签也使用正确的字体。

niwlg2el

niwlg2el4#

import pylab as plb
plb.rcParams['font.size'] = 12

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

dy1byipe5#

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

lkaoscv7

lkaoscv76#

我用

import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "Arial"

以设置整个图的字体。
如果你想使用不同的字体,比如标题,你可以在上面使用aidnani8的解决方案。如果你想对几个项目使用相同的字体,首先为上面的图设置默认字体会很方便。

相关问题