在使用Matplotlib画图的时候,有时需要修改默认字体。一种常见的情况是修改全局字体。另一种情况是需要对某些部分设置不同的字体,如标题和坐标轴标签设置为支持中文的宋体,其他部分保持默认。查询相关资料后,我总结出一种比较方便的修改全局及部分字体的方法。代码如下:
```python
# 1. 查看可用系统字体
import matplotlib.font_manager
print ([f.name for f in matplotlib.font_manager.fontManager.ttflist])
# 2. 修改默认字体为Times New Roman
plt.rcParams['font.sans-serif'] = ['Times New Roman']
plt.rcParams['axes.unicode_minus'] = False
# 3. 单独修改某些部分的字体
chinese_font = 'Simsun'
ax = plt.gca()
# 这四个分别为图例、x轴标签、y轴标签和标题
modified_font_list = [ax.legend().texts, ax.xaxis.label, ax.title]
plt.setp(modified_font_list, family=chinese_font)
此外,有时在修改字体后,需要清空matplotlib缓存以使修改生效,清空方法是删除.matplotlib
文件夹下的所有文件。