1、问题python绘图时,中文无法显示
在网上找了很多教程,很多都说加这3行代码即可解
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
本人加了这3行代码,绘图仍无法显示:
2、通过如下脚本看看anaconda下的fond配置
from matplotlib.font_manager import _rebuild
_rebuild()
from matplotlib import font_manager
a = sorted([f.name for f in font_manager.fontManager.ttflist])
for i in a:
print(i)
import matplotlib
print(matplotlib.matplotlib_fname())
部分结果如下,无法找到SimHei的fond
-----------------------------------------------------------------------------------------------------------------------
3、解决问题步骤:
1、下载一个SimHei字体,路径https://github.com/dolbydu/font
2、在jupyter中输入下面代码查看字体路径:
import matplotlib
print(matplotlib.matplotlib_fname())
我的路径如下:/home/jsy/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/
3、将下载的SimHei.ttf文件放入/home/jsy/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/
4、返回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
5、重启jupyter
有博客说要清缓存,我这边没做这个处理,也达到了显示中文的效果(仅供参考,我这边测试有效)
参考网址