matplotlib、seaborn中文显示问题
程序员文章站
2022-03-21 11:13:32
...
问题描述
在使用matplotlib(或seaborn)时,中文无法正常显示,显示结果为一个方框
环境:Windows+Anaconda
解决方法
方法一:设置plt的参数
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
另外:如果用了seaborn这样的基于matplotlib的库的话,需要额外设置:
sns.set(font='SimHei')
方法二:直接指定字体路径
import matplotlib.font_manager as fm
fonts = fm.FontProperties(fname=r'C:\Windows\Fonts\SimHei.ttf') # 设置字体
plt.xlabel(u'横轴',fontproperties=fonts)
plt.ylabel(u'纵轴',fontproperties=fonts)
方法三:手动修改matolotlib配置文件matplotlibrc
matplotlibrc的位置可用以下方式获得
import matplotlib
matplotlib.matplotlib_fname() #将会获得matplotlib包所在文件夹
1.打开matplotlibrc,分别找到以下项目,去掉前面的#注释
#font.serif : DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif
#font.sans-serif : SimHei, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial,
#axes.unicode_minus : False ## use unicode for the minus symbol 用来正常显示负号
2.找到需要的中文字体,复制到fonts中的ttf目录下,位置在刚刚的matplotlibrc同一级文件夹中的fonts\ttf
3.将我们的字体文件的注册名字(如SimHei)加到配置文件项serif和sans-serif后面的第一个
#font.serif : SimHei, Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, 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
4.到了这步应该就解决了,如果还是不能正常显示,可以在python中重新加载一下字体
from matplotlib.font_manager import _rebuild
_rebuild() #重新加载一下
上一篇: python colorbar箭头设置
下一篇: mac上Matplotlib中文乱码问题
推荐阅读
-
jsp页面显示文件内容有中文乱码问题 博客分类: javajsp jsp中文乱码文件读取
-
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
-
解决Linux系统中python matplotlib画图的中文显示问题
-
DOS命令行窗口mysql中文显示乱码问题解决方法
-
解决Linux系统中python matplotlib画图的中文显示问题
-
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
-
python使用matplotlib绘图时图例显示问题的解决
-
DOS命令行窗口mysql中文显示乱码问题解决方法
-
解决MySQL客户端输出窗口显示中文乱码问题的办法
-
python使用matplotlib绘图时图例显示问题的解决