暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python绘图显示中文最简单的解决办法

AI悦创 2019-06-20
466

你是否在作图是心塞?

辛辛苦苦写出的python代码却不能直接显示中文?

!什么鬼?


今天我们来教大家

如何简单快速的操作,修改此小bug!



你在学习Python的过程中,满心期待地对整理好的数据绘图时,Python却辜负了你,把你的中文全部“翻译”成了框框,犹如这样:

此时此刻你的内心一定是万马奔腾:what?!

                    搞事情嗦~?

不用怕,本文来教你绘图时显示中文的最简单且一劳永逸的终极办法。

只需4步!就可以轻松KO这些调皮捣蛋。跟我来:

一. 查看系统字体文件夹

windows系统中,系统字体文件夹的路径:C:\windows\Fonts,打开之后直接拉到底,看看你的系统里都有啥中文字体。我的长这样:



    真·手把手



不过:要注意的是:

这里要注意图中①与②的不同。

①是单一字体文件,②是几个字体文件集合。分别右键查看二者属性,哦……原来①是ttf文件,②是ttc文件。

(这句作为科普:ttc字体文件是微软开发的新一代字体格式标准,它是由几个ttf构成,这些ttf可以共享同一笔划信息,从而有效节省了字体文件所占空间。但是!有些软件缺乏对这种格式字体的识别,所以可能会导致无法正确处理并显示ttc字体。)


假如你想使用微软雅黑字体,但是现在它是ttc文件。解决办法:上网搜索微软雅黑ttf,下载并放入系统字体文件夹C:\windows\Fonts内。


二. 查看字体英文名称

这步无需多讲,就是把你希望用的中文字体在下图中找到对应的English name。

三. 简单修改Python的字体配置文件

在jupyter notebook中,输入以下代码:


按照运行结果返回的位置,用Notepad++打开matplotlibrc配置文件。

按Ctrl+F,查找:#font.sans-serif。

结果在208行,删除前面的注释符#,并在冒号后面添加第二步表格中的某个English name。

举个栗子,修改为下图所示:

删掉注释符#,并在冒号后面添加STXinwei,即华文新魏

修改后保存退出。

四. 重启Kernel

在jupyter notebook中,按下图操作:

(这句是额外赠送:Python有个字体管理器font_manager.py,每次重启Kernel后,它都会重新生成一个字体配置缓存文件,并修改了绘图程序的字体设置,如下图,所以根本不需要删除这个文件再重启Kernel。)

每次重启Kernel,该文件都会自动重新生成并刷新字体配置

重新执行代码后,之前那些不乖的框框都老实了,重现了她们应有的面貌:

已显示华文新魏中文字体

测试一下:

①修改Python字体配置文件,非衬线体font.sans-serif:Microsoft YaHei, …………(省略)


②重启Kernel并Run all,请直接看结果:


PERFECT!!!完美变成了微软雅黑字体。你学会了吗?


课外知识:

如果你不想修改系统默认配置文件,那么就在每个ipynb文件中,输入下面的代码:

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

更新一句:在后续学习seaborn包绘图时,如果绘图之前指定绘图风格,导致不能显示中文时,此时也许会改变原matplotlibrc的配置,尝试增加一句:

sns.set_style('darkgrid',{'font.sans-serif':'Microsoft YaHei'})
文章转载自AI悦创,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论