mac matplotlib中文显示问题
时间: 2025-07-02 18:47:27 浏览: 10
### 解决Mac上Matplotlib无法正确显示中文的问题
在MacOS环境下,解决Matplotlib中文显示问题的关键在于调整字体设置并清除可能存在的缓存文件。以下是具体的实现方式:
#### 配置SimHei字体
下载并安装SimHei(黑体)字体到本地系统中[^2]。随后,在脚本运行前加载该字体作为全局默认字体。
```python
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
# 设置字体为SimHei
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False # 此参数用来正常显示负号
```
#### 清除Matplotlib缓存
如果之前存在错误配置或者未成功应用新字体,则需删除`~/.matplotlib/fontList.json`以及相关缓存文件来强制刷新环境设定[^3]。
#### 测试多种可用中文字体
除了SimHei之外还可以尝试其他几种适合于macOS平台上的开源或预装字体如Kaiti SC、Hiragino Sans GB等[^5]。下面给出一段用于展示不同字体效果的小程序:
```python
import matplotlib.pyplot as plt
import numpy as np
fonts = [
'Kaiti SC',
'Hiragino Sans GB',
'Songti SC',
'Heiti TC',
'PingFang HK',
'Arial Unicode MS'
]
for i, font in enumerate(fonts):
try:
prop = FontProperties(fname=f'/System/Library/Fonts/{font}.ttc')
break
except Exception:
continue
fig, ax = plt.subplots()
ax.set_title("测试标题", fontproperties=prop)
ax.text(0.5, 0.5, "你好世界!", transform=ax.transAxes,
horizontalalignment='center', verticalalignment='center',
fontproperties=prop)
plt.show()
```
以上代码片段会依次遍历指定列表内的每一项直至找到第一个可被正常渲染出来的字体为止,并将其应用于最终呈现的画面当中去[^4]。
通过上述操作即可有效改善甚至完全消除因缺乏适当字型而导致的乱码现象发生几率。
阅读全文
相关推荐















