一、环境描述

  • python 3.7
  • mac 10.14.5

二、问题描述

如下图所示,当使用matplotlib绘制图片的时候,所有的中文字符无法正常显示。

Mac下面 matplotlib 中文无法显示解决-LMLPHP

三、解决方法

1、下载字体ttf文件

链接:https://pan.baidu.com/s/1RLVvbIi_NpAiiycBYQRPCQ 密码:n1sv

2、找到配置文件

使用如下代码找到配置文件:

import matplotlib
print (matplotlib.matplotlib_fname()) # 将会获得matplotlib配置文件
 
  • 1
  • 2

我个人的配置如下图:

Mac下面 matplotlib 中文无法显示解决-LMLPHP

3、找到ttf字体文件存放目录并添加ttf文件

打开/Users/lina/.matplotlib/,会看到有一个fontList.json文件,打开文件,会看到一系列的字体配置,可以得到字体配置的目录:

Mac下面 matplotlib 中文无法显示解决-LMLPHP

打开目录/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/,将刚刚下载的simhei.ttf复制到此文件夹下,并将simhei.ttf添加到fontList.json中,如下图:

Mac下面 matplotlib 中文无法显示解决-LMLPHP

4、重新加载新的字体库

使用下面代码加载新的字体库:

from matplotlib.font_manager import _rebuild
_rebuild()
 
  • 1
  • 2

注意,这个只需要执行一次即可。

5、在画图中应用simhei字体

使用如下代码引用simhei字体:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
 
  • 1
  • 2
  • 3

其最终效果如下,中文可以正常显示。

Mac下面 matplotlib 中文无法显示解决-LMLPHP

参考文章:

https://blog.csdn.net/quiet_girl/article/details/103398605

https://blog.csdn.net/Lengwenin/article/details/97372563

https://www.cnblogs.com/wanghui-garcia/p/11195925.html

05-22 17:02