【Mac OS】解决matplotlib中文显示问题

问题描述

matplotlib画图无法显示中文(中文被替换成方块),如下:
在这里插入图片描述

解决方法

Step 1: 下载 SimHei.ttf

方式一:见本文附件
方式二:提取码: wqgy

Step 2: 找出存放字体的ttf文件夹路径

运行python代码:

import matplotlib
print(matplotlib.get_data_path() + '/fonts/ttf')

得到ttf文件夹路径:

/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/matplotlib/mpl-data/fonts/ttf

Step 3: 将SimHei.ttf到ttf文件夹下

在Mac OS的终端(Terminal)中运行命令open ttf文件夹路径:

open /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/matplotlib/mpl-data/fonts/ttf

复制粘贴SimHei.ttf到ttf文件夹中
在这里插入图片描述

Step 4: 用vim编辑matplotlibrc文件

运行python代码:

import matplotlib
print(matplotlib.matplotlib_fname())

得到matplotlibrc文件路径:

在Mac OS的终端(Terminal)中运行命令vim matplotlibrc文件路径

vim /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/matplotlib/mpl-data/matplotlibrc

按下i键, 修改3处:

  1. 去掉#font.family: sans-serif这一行开头的#
  2. 去掉#font.sans-serif: DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif这一行开头的#, 并在font.sans-serif: 后插入SimHei,(注意有逗号)
  3. 去掉#axes.unicode_minus: True 开头的#, 并将True改为False

然后按下esc键, 输入:wq, 按下enter

效果图:
在这里插入图片描述
在这里插入图片描述

Step 5: 删除.matplotlib文件夹(内有字体缓存)

运行python代码:

import matplotlib
print(matplotlib.get_cachedir())

得到 .matplotlib文件夹路径

/Users/apple/.matplotlib

在Mac OS的终端(Terminal)中运行命令rm -rf .matplotlib文件夹路径

rm -rf /Users/apple/.matplotlib

Step 6: 测试能否显示中文

运行python代码:

import matplotlib.pyplot as plt
plt.plot([1,2,3], [2,3,4])
plt.title("测试能否显示中文")
plt.show()

结果:
在这里插入图片描述
至此大功告成!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值