怎么在matplotlib中显示中文

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.font_manager as fm
f1 = fm.FontProperties('simhei', size=20)
plt.text(0.5, 0.5, '文本', font=f1)
x=np.linspace(0,10,100)
#fig=plt.figure()
plt.plot(x,np.sin(x),'-')
plt.plot(x,np.cos(x),'--')
plt.title('函数',fontsize=20)
plt.show()

img

  • 检查当前python环境下使用的字体是什么print(plt.rcParams['font.sans-serif']),看看设置成了什么
  • 如果显示找不到字体,先在系统命令行里查看有没有中文字体,运行命令fc-list :lang=zh,比如你用了simhei,那么输出应该有一个包含simhei.ttf的路径,那么可以在python脚本里把这个字体直接引入
    ```python
    matplotlib.font_manager.fontManager.addfont('上面输出的路径/simhei.ttf')
    matplotlib.rcParams['font.sans-serif']=['SimHei']

```


plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False  

img

可参考该文章:matplotlib设置字体 解决plt绘图中文乱码
文中包含了如何查看默认字体可使用的其他字体的方法。