解决Pycharm中matplotlib画图中文乱码问题方法总结

上一篇 / 下一篇  2022-01-13 19:32:18 / 个人分类:python

百度中,搜索Pycharm中matplotlib画图中文乱码问题,解决办法大多是针对Windows的。由于我使用的是Mac,所以专门总结一下针对Mac OS系统的解决方式。主要有以下方式:

第一种是将字体直接在代码中调用字体文件,这种方式较为灵活,但每次调用时需设置fontproperties属性

1、下载字体并放在代码目录中

2、在代码中添加以下代码

importmatplotlib

 

# fname你下载的字体库路径

zhfont1=matplotlib.font_manager.FontProperties(fname="msyh.ttf") 

 

-------- snip-------

plt.title("测试",fontproperties=zhfont1) 

 

# fontproperties设置中文显示,fontsize设置字体大小

plt.xlabel("x",fontproperties=zhfont1)

plt.ylabel("y",fontproperties=zhfont1)


第二种是修改matplotlib配置,代码显得更为整洁


1、下载字体;

2、将下载的SimHei.ttf移动到你的matplotlib/mpl-data/fonts/ttf/下,路径全称可在Pycharm里使用下面的代码打印出来


import matplotlib

path = matplotlib.matplotlib_fname()

print(path)


3、编辑/mpl-data/下的matplotlibrc,修改以下内容(去掉前面的#号,第三行修改为False)


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: False #作用就是解决负号’-'显示为方块的问题


4、Pycharm或者python终端里面执行以下命令:


from matplotlib.font_manager import _rebuild

_rebuild()


5、使用matplotlib画图的代码中加入如下两句


plt.rcParams['font.sans-serif'] = ['SimHei']  #用来正常显示中文标签

plt.rcParams['axes.unicode_minus'] = False  #用来正常显示负号


TAG: matplotlib Python python

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-18  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 2755
  • 日志数: 9
  • 建立时间: 2021-10-02
  • 更新时间: 2022-01-13

RSS订阅

Open Toolbar