企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
问题:输出图形时不能显示中文,以方框显示 觖决方法网上很多,但最实用的就是修改配置 1、从系统的font文件中找到可以显示中文的字体(.ttf文件),并把它复制到...anaconda3\Lib\site-packages\matplotlib\mpl-data\fonts\ttf文件夹中; ![](https://box.kancloud.cn/d773488c8d548071e47caf5f58948e52_752x283.png) 微软雅黑 复制后变成了2个文件msyh.ttf和msyhbd.ttf 对应第2步中的名字是 "Microsoft YaHei" 宋体、新宋体 复制后是simsun.ttc(这个不可用) 仿宋 复制后是simfang.ttf 对应第2步中的名字是 "FangSongi" 楷体 复制后是simkai.ttf 对应第2步中的名字是 "KaiTi" 2、在 C:\Users\用户名\.matplotlib\fontList.json文件中查看字体的名字。 从内容看,好象自动加载了系统的字体,不用第一步的复制了。 ``` { "fname": "c:\\windows\\fonts\\msyh.ttf", "name": "Microsoft YaHei", "style": "normal", "variant": "normal", "weight": 400, "stretch": "normal", "size": "scalable", "_class": "FontEntry" }, ``` 3、修改matplotlibrc配置 ``` #找到....\anaconda3\Lib\site-packages\matplotlib\mpl-data\matplotlibrc文件,去掉下面三项前的#号 #第一处去掉前面的#号 font.family : sans-serif #第二处去掉前面的#号 font.serif : DejaVu Serif, Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif #第三处去掉前面的#号,并把第2步中得到的(name)名字写在第一位 font.sans-serif : Microsoft YaHei,KaiTi, DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif #第四处去掉前面的#号,并把true改为false,这个据说是有为了负号正常显示 axes.unicode_minus : False # use unicode for the minus symbol ``` 4、试例: ![](https://box.kancloud.cn/732a36b189ad26910f3ce2f06bec5245_410x302.png)