版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Maverick_7/article/details/82155945
Windows
之前在Windows上,遇到matplotlib在画图时,出现中文乱码的问题。解决方案很简单,只需在脚本前加上:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=[u'SimHei']
#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False
#用来正常显示负号
#有中文出现的情况,需要u'内容'
#其他画图配置:
plt.rcParams['figure.figsize']=10,10
plt.rcParams['figure.dpi']=300
Mac:
但是,以上的操作在mac上无效。
因为在mac中的/Library/Fonts文件夹中,虽有多种不同的字体,但并没有显示中文的SimHei.ttf,所以需要先进行下载和安装,并修改一下matplotlibrc脚本,就可以使得matplotlib在画图时正常显示中文了。
- 第一步:下载字体并安装:SimHei
第二步:将字体文件SimHei.ttf拷贝到python安装路径/site-packages/matplotlib/mpl-data/fonts/ttf目录中
第三步:修改~python安装路径/site-packages/matplotlib/mpl-data/matplotlibrc文件。找到如下两项,去掉前面的#,并在font.sans-serif冒号后面加上SimHei,如下:
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
,将True改为False,以解决负号’-‘显示为方块的问题。
- 第四步:在脚本运行前加入:
#matplotlib不会每次启动时都重新扫描所有的字体文件并创建字体索引列表,
# 因此在复制完字体文件之后,需要运行下面的语句以重新创建字体索引列表
import matplotlib as mpl
from matplotlib.font_manager import _rebuild
_rebuild()
#防止中文乱码问题
mpl.rcParams['font.sans-serif']=[u'SimHei']
mpl.rcParams['axes.unicode_minus']=False
或者在rebuild之后,也可在之后使用中直接加入:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=[u'SimHei']
#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False
#用来正常显示负号
#有中文出现的情况,需要u'内容'
#其他画图配置:
plt.rcParams['figure.figsize']=10,10
plt.rcParams['figure.dpi']=300