在使用 Python 的数据可视化库 Matplotlib 绘制图表时,常常会遇到中文乱码的问题,尤其是在 Ubuntu 等 Linux 系统中。这篇博文将指导你如何安装中文字体库,并在 Matplotlib 中正确配置使用这些字体,从而解决中文乱码的问题。
1. 安装中文字体库
首先,我们需要在 Ubuntu 中安装中文字体。可以选择常用的字体库,比如 Noto Sans CJK
或 WenQuanYi Zen Hei
。打开终端,运行以下命令:
bash
复制
sudo apt update
sudo apt install fonts-noto-cjk
# 或者
sudo apt install fonts-wqy-zenhei
2. 更新字体缓存
安装完字体后,需要更新系统的字体缓存,以确保新安装的字体能够被识别。执行以下命令:
bash
复制
fc-cache -fv
3. 配置 Matplotlib 使用中文字体
接下来,我们需要在 Python 脚本中配置 Matplotlib 以使用我们刚刚安装的中文字体。以下是一个示例代码,展示如何设置字体:
python
运行复制
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 指定字体路径
font_path = '/usr/share/fonts/truetype/noto/NotoSansCJK-Regular.ttc' # 替换为实际路径
font_prop = fm.FontProperties(fname=font_path)
# 示例数据
plt.plot([1, 2, 3], [1, 4, 9])
plt.title('示例图表', fontproperties=font_prop)
plt.xlabel('横轴', fontproperties=font_prop)
plt.ylabel('纵轴', fontproperties=font_prop)
plt.show()
在上面的代码中,font_path
应替换为你系统中实际的字体文件路径。可以使用以下命令查找字体文件路径:
bash
复制
fc-list : family | grep "Noto"
# 或者
fc-list : family | grep "WenQuanYi"
4. 更新 Matplotlib 配置
为了让 Matplotlib 记住这个字体设置,可以在 Matplotlib 的配置文件 matplotlibrc
中添加以下内容:
plaintext
复制
font.family : sans-serif
font.sans-serif : Noto Sans CJK
5. 清除 Matplotlib 缓存
有时,Matplotlib 会缓存字体信息,导致字体更改不生效。可以通过以下命令清除缓存:
bash
复制
rm -rf ~/.cache/matplotlib
6. 验证设置
运行上述代码,如果图表中的中文字符能够正常显示,说明配置成功。如果仍然出现乱码,请检查字体路径和文件是否存在,或者尝试其他字体文件。
结论
通过以上步骤,你可以在 Ubuntu 上成功解决 Python 程序中 DataFrame 图表的中文乱码问题。正确安装和配置中文字体是确保数据可视化正常显示的关键。希望这篇博文能为你提供帮助,让你在数据分析和可视化的过程中更加顺利!