执行以下代码查看一下你matplotlib有哪些字体
from matplotlib.font_manager import fontManager
import os
fonts = [font.name for font in fontManager.ttflist if os.path.exists(font.fname) and os.stat(font.fname).st_size>1e6]
for font in fonts:
print(font)
如果有CN字体那就别学网上下什么思源黑体,直接用就好了嘛,随便哪个字体用一下:
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['AR PL UMing CN']
plt.plot((1,2,3),(4,3,-1))
plt.xlabel('横坐标')
plt.ylabel('纵坐标')
plt.show()
都是可以输出结果的。
那如果真的没有这些字体怎么办?
那就下载呀,网上随便下个ttf格式的字体就好,不过注意一下别下到用不了的字体那你后边怎么操作都没用
import matplotlib
print(matplotlib.matplotlib_fname())
输出下在哪个目录
这个目录下有个/fonts/ttf,把下载的字体包复制进去
接下来清除下缓存
cd ~/.cache/matplotlib
rm -rf *.*
删除后记得reload一下
from matplotlib.font_manager import _rebuild
_rebuild()
这个时候你缓存的json文件里就有
这个时候你就能引用字体了。
不过如果想省略指定字体那行代码也可以,修改配置文件matplotlibrc 同样在matplotlib/mpl-data目录下面,修改下面三项配置
font.family : sans-serif
font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
axes.unicode_minus:False #作用就是解决负号'-'显示为方块的问题
这时候默认就用这个字体了,完事