Matplotlib的中文字体显示为方块的问题

今天上午画小论文图的时候,用matplotlib画,发现如果设置中文的标题会出现方块的问题,在网上看了许多教程,可以总结为以下几个:

① 每次编写代码时进行参数设置

# coding: UTF-8
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号#有中文出现的情况,需要u'内容'

但是我实际使用的时候,这个是不好使的。不知道是不是我使用了seaborn包的原因。

② 修改matplotlibrc文件

(完整路径为:xxx\Anaconda3\Lib\site-packages\matplotlib\mpl-data\matplotlibrc)

首先,找到

font.family : sans-serif

这里写图片描述

去掉其前面的注释。接着,找到

font.sans-serif:Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica,Avant Garde, sans-serif

这里写图片描述

修改为

font.sans-serif:Microsoft YaHei ,Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid,Arial, Helvetica, Avant Garde, sans-serif

即去掉注释,并在配置值中添加 MicrosoftYaHei 。最后,在windows下搜索msyh.ttf(路径为C:\Windows\Fonts),即微软的雅黑字体并将msyh.ttf复制到xxx\Anaconda3\Lib\site-packages\matplotlib\mpl-data\fonts\ttf目录下。

③ 可用方案

1、 找到matplotlib安装目录下的matplotlibrc文件(同上),找到#font.sans-serif :…这一行,把后面的修改为nothing’,这样做是强制让系统无法找到英文字体,而是用matplotlib默认字体Vera.ttf替换(可选)

  • font.sans-serif : nothing

2、在这个文件中继续找,找到#verbose.level : silent这行。把silent修改为debug,这样做是为了看更详细的输出。(可选)

  • verbose.level : debug

3、找到字体目录xxx\Anaconda3\Lib\site-packages\matplotlib\mpl-data\fonts\ttf下的Vera.ttf。这里我们用中文楷体可以从C:\Windows\Fonts拷贝过来,直接张贴到前面的ttf目录下,然后更名为Vera.ttf,相当于用中文的字体替换掉之前默认的英文字体。

注意:这里面只是单纯的实现了可以中文输出的问题,不代表以后没有问题,建议对原来的Vera文件做一下备份。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值