本文是参考了很多人的博客来写的,不好引用,如果觉得侵权了,联系删除好了(没必要,我觉得我写的最全),可能是版本原因,他们的简单方法无法解决。下面我直接说做法好了
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
import numpy as np
a=np.arange(9)
b=np.sin(a)
plt.plot(a,b)
plt.title('哈罗')
plt.show()
发现还是框框,不是中文,哈哈哈,这段不管了,往下操作
python-3.7
ubuntu18.04版本
matplotlib是直接在pycharm安装的
https://github.com/stellarCN/scp_zh/blob/master/fonts/SimHei.ttf
直接download下载,可以在自己的下载文件夹中找到
/home/smj/anaconda3/envs/TF1/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf
的文件下面,顺便打开看一下,你就会发现很多字体了
不知道这个路径在哪,可以用下面代码:
import matplotlib
print(matplotlib.matplotlib_fname())
#font.family: sans-serif
#font.sans-serif: DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
#axes.unicode_minus: True
改为:(下面改的内容不要直接复制哈,结尾是每行的修改内容)
font.family: sans-serif (去掉#)
font.sans-serif: SimHei ,DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif (去掉#,,加上SimHei 加个英文的 逗号)
axes.unicode_minus: False (去掉#,True改为False)
在代码中加入下面的
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
你的代码就能显示中文了
那现在用的代码再试一下
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
import numpy as np
a=np.arange(9)
b=np.sin(a)
plt.plot(a,b)
plt.title('哈罗')
plt.show()
如果还是没解决,直接评论,我帮你解决!(window系统除外哈,应该大差不差)