在 Ubuntu 中解决 Python 程序中 DataFrame 图表中文乱码问题

在使用 Python 的数据可视化库 Matplotlib 绘制图表时,常常会遇到中文乱码的问题,尤其是在 Ubuntu 等 Linux 系统中。这篇博文将指导你如何安装中文字体库,并在 Matplotlib 中正确配置使用这些字体,从而解决中文乱码的问题。

1. 安装中文字体库

首先,我们需要在 Ubuntu 中安装中文字体。可以选择常用的字体库,比如 Noto Sans CJKWenQuanYi 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 图表的中文乱码问题。正确安装和配置中文字体是确保数据可视化正常显示的关键。希望这篇博文能为你提供帮助,让你在数据分析和可视化的过程中更加顺利!

相关推荐
Benszen6 分钟前
Secret详解
linux·运维·服务器
speop15 分钟前
AMD | task02
python
Dlrb121129 分钟前
Linux网络编程-网络基础概念(IP, UDP协议)
linux·服务器·网络·网络基础·端口号·ip协议·udp协议
lili001234 分钟前
2026 企业 AI 选型新范式:OpenRouter Fusion 证明多模型融合性价比远超单模型,企业该如何重构技术栈? - 微元算力(weytoken)
java·人工智能·python·重构·ai编程
Keano Reurink36 分钟前
搜索API与GSC数据对比:发现数据盲区
数据库·python·数据挖掘
大黄说说1 小时前
深入理解 Go 协程 Goroutine:并发编程的核心精髓
java·数据库·python
cd988801 小时前
2026年,电销机器人哪家强?
python
搏博1 小时前
多传感器融合基础之一图像空间(Image Space)全面解析
图像处理·python·图像空间·融合感知
小易撩挨踢1 小时前
[特殊字符] Linux 7.1 内核正式发布:距 7.0 仅 9 周,新 CPU/GPU/文件系统全面升级
linux·运维