1.异常
我的python代码如下
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置
plt.title('中华人民共和国')
plt.plot([1,2,3,4],['一','二','三','四'],color="b",linestyle = ":")
plt.show()
抛出异常
findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans.
findfont: Generic family 'sans-serif' not found because none of the following families were found: SimHei
2.解决
通过python找到python字体目录
import matplotlib
print(matplotlib.matplotlib_fname())
输出
/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
把windows上的 C:WindowsFonts 字体文件 复制到/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf
然后找到python字体缓存文件
import matplotlib
print(matplotlib.get_cachedir())
输出:/root/.cache/matplotlib
删除缓存:rm -rf /root/.cache/matplotlib/*
等会运行python缓存文件就会自动生成
到这里我已经解决了
如果还没有解决
修改 matplotlibrc
/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
font.family : sans-serif
# 去掉前面的#
font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
# 去掉前面的#,并在冒号后面添加SimHei
axes.unicode_minus : False
# 去掉前面的#,并将True改为False