在 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 图表的中文乱码问题。正确安装和配置中文字体是确保数据可视化正常显示的关键。希望这篇博文能为你提供帮助,让你在数据分析和可视化的过程中更加顺利!

相关推荐
Maki Winster36 分钟前
Peek-Ubuntu上Gif录制工具-24.04LTS可装
linux·ubuntu·peek
巴里巴气1 小时前
selenium基础知识 和 模拟登录selenium版本
爬虫·python·selenium·爬虫模拟登录
19891 小时前
【零基础学AI】第26讲:循环神经网络(RNN)与LSTM - 文本生成
人工智能·python·rnn·神经网络·机器学习·tensorflow·lstm
JavaEdge在掘金1 小时前
Redis 数据倾斜?别慌!从成因到解决方案,一文帮你搞定
python
ansurfen1 小时前
我的第一个AI项目:从零搭建RAG知识库的踩坑之旅
python·llm
前端付豪1 小时前
20、用 Python + API 打造终端天气预报工具(支持城市查询、天气图标、美化输出🧊
后端·python
前端付豪1 小时前
19、用 Python + OpenAI 构建一个命令行 AI 问答助手
后端·python
Maki Winster2 小时前
在 Ubuntu 下配置 oh-my-posh —— 普通用户 + root 各自使用独立主题(共享可执行)
linux·运维·ubuntu
守望时空332 小时前
Linux下KDE桌面创建自定义右键菜单
linux
amazinging2 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十三天
python·学习