簡體   English   中英

如何更改 matplotlib (python) 中的字體?

[英]How to change fonts in matplotlib (python)?

這聽起來是一個簡單的問題,但我沒有找到任何有效的解決方案來在 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 的字體系列參數列表在這里

我更喜歡雇用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM