Mac中使用matplotlib时中文不显示如何解决?

Mac中使用matplotlib时中文不显示如何解决?


1. 首先查看matplotlib已加载的字体。 具体通过如下代码实现:

import matplotlib.font_manager

a = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])

for i in a:
    print(i)

2. 然后通过“command+空格”快捷键,进行搜索查找“字体册”,选择“中文-华文仿宋”。 具体操作如下:

在这里插入图片描述

在这里插入图片描述

3. 在华文仿宋上右键-在访达中显示。 (备注:据说.ttf格式的才能用,我这里华文仿宋是.ttc格式的,没作改动,也成功了,如果实在没成功,可以去试试改格式)
在这里插入图片描述
4. 然后,找到ttf字体文件存放目录并添加ttf文件 具体操作如下:

(1)拷贝该字体的绝对路径,如:本机为“/System/Library/Fonts/Supplemental/Songti.ttc”。

(2)找到matplotlib的配置文件,具体使用如下代码找到配置文件:

import matplotlib
print (matplotlib.matplotlib_fname()) # 将会获得matplotlib配置文件
>>>
/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc  # 本机示例路径

根据配置文件路径指示,找到matplotlib的配置文件夹,如下图所示:
在这里插入图片描述

(3)打开matplotlib的配置文件夹可以看到有一个fontlist-v310.json文件,打开文件,找到一系列的字体配置 "ttflist",可以得到字体配置的目录:

然后,将下述代码段(根据欲添加的字体修改而得)其粘贴到fontlist-v310.json文件文件中的字体配置 "ttflist"列表中即可:

{
    
    
      "fname": "/System/Library/Fonts/Supplemental/Songti.ttc",
      "name": "Songti SC",
      "style": "normal",
      "variant": "normal",
      "weight": "black",
      "stretch": "normal",
      "size": "scalable",
      "__class__": "FontEntry"
    },

5. 然后,重新加载新的字体库: 具体操作如下:

from matplotlib.font_manager import _rebuild

_rebuild()

至此大功告成!!!!

你再使用上面的查看字体库的代码就能够看见Songti SC这个字体了。

测试代码如下:

#coding:utf-8
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [1,4,9,16,25]
#调用绘制的plot方法
plt.plot(x, y, linewidth=5)
plt.xlabel('x')
plt.ylabel('y=x^2')
#不支持中文的解决办法
plt.rcParams['font.sans-serif']=['Songti SC'] #用来正常显示中文标签
#添加标题
plt.title('多个点绘制折线图') #会出现乱码

#显示绘制的图
plt.show()

在这里插入图片描述

参考链接:
mac中matplotlib不支持中文的解决办法

mac下matplotlib中文字体无法显示解决方法

猜你喜欢

转载自blog.csdn.net/weixin_42782150/article/details/109353702