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不支持中文的解决办法