python中matplotlib画图中文乱码的解决方法

系统 1683 0

问题

在python中使用matplotlib画图,里面的中文会显示乱码方块。

解决方法

这是由于matplotlib默认使用的字体中不包含中文字符引起的,可以通过将中文字符加入到默认字体中解决。

前提:查找本地都有哪些中文字体

打开matplotlib字体,默认为 C:\Users\用户名\.matplotlib ,打开 fontList.json ,查找中文字体如 simHei , song , kai 等,分别对应简体黑、宋体、楷体等。

查找到之后,其对应的 name 字段值即为我们接下来将要设置的中文字体名,复制下来,比如中宋字体 STZhongsong
python中matplotlib画图中文乱码的解决方法_第1张图片

方法一:代码解决

在脚本开头加入以下语句即可:

            
              
                from
              
               pylab 
              
                import
              
               mpl
mpl
              
                .
              
              rcParams
              
                [
              
              
                'font.sans-serif'
              
              
                ]
              
              
                =
              
              
                [
              
              
                'STZhongsong'
              
              
                ]
              
              
                # 指定默认字体:解决plot不能显示中文问题
              
              
mpl
              
                .
              
              rcParams
              
                [
              
              
                'axes.unicode_minus'
              
              
                ]
              
              
                =
              
              
                False
              
              
                # 解决保存图像是负号'-'显示为方块的问题
              
            
          

方法二:永久解决

运行下面的代码:

            
              
                import
              
               matplotlib

              
                print
              
              
                (
              
              matplotlib
              
                .
              
              matplotlib_fname
              
                (
              
              
                )
              
              
                )
              
            
          

会输出配置文件路径,如:

            
              C:\Users\gong\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc

            
          

打开此文件,找到 #font.family: #font.sans-serif: 开头的这两行,将两行的注释 # 去掉,并在 font.sans-serif: 后添加自己想加入的中文字体名,如:
python中matplotlib画图中文乱码的解决方法_第2张图片
然后保存文件,重新运行python环境即可,不必在代码中做出任何修改。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论