在 Ubuntu 使用 fonts-noto-cjk 设置 Matplotlib 支持中文的完整教程
在 Ubuntu 使用 fonts-noto-cjk 设置 Matplotlib 支持中文的完整教程
-
- 1. 为什么需要配置中文字体?
- 2. 安装 `fonts-noto-cjk`
-
- 安装命令:
- 检查字体安装是否成功
- 3. 配置 Matplotlib 支持中文
-
- 3.1 手动加载字体
- 3.2 设置全局字体(可选)
-
- 修改 Matplotlib 全局配置
- 4. 清理字体缓存(解决配置问题)
- 5. 常见问题与解决方法
-
- 问题 1:找不到 `Noto Sans CJK` 字体
- 问题 2:仍显示乱码或方块
- 问题 3:路径错误
- 6. 总结
-
- 完整代码:
在使用 Python 的可视化库如 Matplotlib 绘图时,如果数据包含中文,经常会遇到中文显示为乱码或不显示的情况。这篇文章将详细介绍如何在 Ubuntu 系统中安装 fonts-noto-cjk
中文字体,并在 Matplotlib 中正确显示中文。
1. 为什么需要配置中文字体?
Matplotlib 默认使用的字体通常不支持中文,而中文内容会显示为方块或乱码。通过安装并配置支持中文的字体,如 Google 的开源字体 Noto Sans CJK,我们可以轻松解决这个问题。
2. 安装 fonts-noto-cjk
fonts-noto-cjk
是 Google 提供的高质量开源字体,支持中文、日文和韩文字符。在 Ubuntu 中安装非常简单:
安装命令:
打开终端,输入以下命令:
sudo apt update
sudo apt install fonts-noto-cjk
检查字体安装是否成功
安装完成后,使用以下命令检查字体是否成功安装:
fc-list | grep "Noto Sans CJK"
输出中应包含类似以下内容:
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK SC
如果能看到上述结果,说明字体安装成功。
3. 配置 Matplotlib 支持中文
3.1 手动加载字体
通过 Matplotlib 的 font_manager.FontProperties
指定字体路径:
from matplotlib import font_manager
import matplotlib.pyplot as plt
# 设置字体路径
font_path = '/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc' # 确保路径正确
font_prop = font_manager.FontProperties(fname=font_path)
# 测试中文显示
plt.title