在 Matplotlib 中指定本地字体库可以通过以下几种方法实现:
方法一:通过rcParams
设置字体
可以通过修改matplotlib
的配置参数rcParams
来指定字体。以下是具体步骤:
- 导入相关模块:
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
- 设置字体:
通过plt.rcParams
设置字体。例如,指定使用本地的SimHei
字体:
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定字体为 SimHei
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
- 绘制图形:
plt.text(0.5, 0.5, '测试字体', fontsize=20)
plt.show()
方法二:使用FontProperties
指定字体
如果需要在特定的文本元素中使用本地字体,可以使用FontProperties
。
- 导入相关模块:
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
- 加载字体文件:
使用FontProperties
加载字体文件。例如,加载本地的SimHei.ttf
字体:
font_path = 'C:/Windows/Fonts/simhei.ttf' # 字体文件路径
font_prop = fm.FontProperties(fname=font_path)
- 在绘图中使用字体:
plt.text(0.5, 0.5, '测试字体', fontproperties=font_prop, fontsize=20)
plt.show()
方法三:将字体文件放入 Matplotlib 字体目录
如果希望 Matplotlib 永久使用某个字体,可以将字体文件复制到 Matplotlib 的字体目录中。
- 找到 Matplotlib 字体目录:
import matplotlib as mpl
print(mpl.get_cachedir())
-
将字体文件复制到该目录:
将字体文件(如SimHei.ttf
)复制到上述路径下的fonts/ttf
文件夹中。 -
清除字体缓存:
删除 Matplotlib 的字体缓存文件(通常位于~/.matplotlib
目录下),然后重新运行代码。 -
设置字体:
在代码中设置字体:
plt.rcParams['font.sans-serif'] = ['SimHei']
方法四:使用系统自带字体
如果系统中已经安装了所需的字体,可以直接在代码中指定字体名称。
- 查看系统字体:
from matplotlib.font_manager import fontManager
fonts = fontManager.ttflist
for font in fonts:
print(font.name)
- 指定字体:
例如,使用系统自带的Microsoft YaHei
字体:
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
注意事项
-
如果使用的是非 ASCII 字符(如中文),建议设置
axes.unicode_minus=False
,以避免符号显示为方块。 -
在设置字体时,确保字体文件路径正确,且字体文件已正确安装。
-
如果修改了 Matplotlib 的字体配置,建议清除字体缓存以确保设置生效。