python微软雅黑_Windows+Python 解决 matplotlib 画图不支持中文(及负号)的问题

本文介绍了在Windows环境下,如何解决Python的matplotlib库在画图时中文和负号显示问题的方法。通过复制系统字体到matplotlib的字体目录,修改matplotlibrc配置文件,并清除缓存,可以实现中文和负号的正确显示。步骤包括查找并配置matplotlibrc文件,添加支持中文的字体,以及调整配置解决负号显示问题。
摘要由CSDN通过智能技术生成

昨天折腾了这破问题一晚上,参照知乎上的问题下面的回答:

以及还有一些博客,还是一直解决不了。今天终于弄好了,来分享下怎么走的,方便以后需要的人可以少走点弯路,也为自己以后做个备份。

我的开发环境是 Windows10 + Anaconda3 + Pycharm。不过解决思想应该 linux,Mac也都差不多。

看到 @MichaelXoX 的答案,我这么偷懒的人,当然选择的是一劳永逸的解决方案啦!

我会基本操作,所以太长不看型:

首先把自己电脑上的windows支持中文的系统字体copy到malplotlib的字体中,再在matplotlibrc配置文件中设置一下支持,然后清除掉matplotlib以前的缓存,重启Python即可大功告成!

步骤如下:

Step1:找到matplotlibrc配置文件和fonts所在位置。

在python的控制台输入:matplotlib.matplotlib_fname(),从而得到matplotlib的配置文件所在位置,按此目录索引打开该文件夹,可以看到fonts文件夹和matplotlibrc配置文件,进入到fonts文件夹里的ttf文件夹,放着不动,等待下一步操作。图1:从Python的控制台得到文件夹位置图2:打开该文件夹

Step2:Copy中文支持字体到matplotlib的ttf文件夹。

找到windows上支持中文的字体文件夹:C:\Windows\Fonts,找一个支持中文的,比方说微软雅黑,黑体,楷体等等(我试过,此处其实无所谓ttc文件和ttf文件),将这个字体copy到Step1中的ttf文件夹中,我选的是微软雅黑。图3:找到windows下支持中文的字体

Step3:找到刚刚那个字体的英文名称。

直接点开后发现字体名称是中文的“微软雅黑”,不是英文没关系,给你一个对应表格。(昨晚一直弄不对其实就是卡死在这一步。)发现英文名是“Microsoft YaHei”。图4:字体中英文对照

Step4:配置matplotlibrc文件。

进入Step1中的matplotlibrc配置文件,找到大概211行的#font.sans-serif ,去掉#号,并在后面加上刚刚copy过来的字体的英文名称(注意不是文件的英文名称,比方说幼圆字体的文件名称是SIMYOU.ttf,但这并不是我们想要的,而是它的字体英文名称YouYuan),修改后保存。图5:修改matplotlibrc配置文件,添加中文支持字体

Step5: 清除之前的缓存。(其实我也没搞清楚到底需要不需要这一步,不过最好还是做这一步)

再Python控制台输入:matplotlib.get_cachedir(),得到缓存所在的文件夹。进入文件夹,删空里面的文件。图6:得到缓存所在文件夹图7:删空这些文件

Step6:开心地重启Python即可。

图8:图上的中文真漂亮,且来之不易

(2018年1月18号更新)

Step7:修改配置matplotlibrc文件解决负号不显示问题。

评论里 @旧信 提到了负号无法显示的问题,我今天用到了负号,发现显示的是一个方格,怎么解决呢?很简单,继续一劳永逸的办法,甚至不用重启Python(至少我这边是这样的),修改配置文件matplotlibrc,大概在330行,去掉前面的注释#号,将True改为False,保存修改好的文件,你的Python就可以显示负号了。图9:修改配置文件解决负号显示问题

声明:转载需联系本人。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值