← 返回
数据分析

Matplotlib Chinese Font

Configure Chinese fonts for matplotlib plotting. Use when plotting charts with Chinese characters or getting garbled text.
为matplotlib配置中文字体,解决图表中文乱码问题。
tazio7
数据分析 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 760
下载
💾 96
安装
1
版本
#latest

概述

Matplotlib 中文字体配置

何时使用

  • matplotlib 图表中出现中文乱码(显示为方块)
  • 需要在图表中使用中文标题、标签、图例
  • 需要区分不同中文字体效果(如宋体 vs 黑体)

快速配置

方法 1:全局配置(推荐)

import matplotlib.pyplot as plt

# 配置中文字体
plt.rcParams['font.sans-serif'] = ['Heiti TC']  # 华文黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

# 绘制图表
plt.plot([1, 2, 3], [1, 2, 3])
plt.title('测试标题', fontsize=14)
plt.xlabel('X 轴')
plt.ylabel('Y 轴')
plt.show()

方法 2:强制指定字体(更可靠)

当全局配置不生效时,在具体元素上强制指定:

plt.title('图表标题', fontsize=14, fontname='Heiti TC')
plt.xlabel('X 轴', fontsize=12, fontname='Heiti TC')
plt.ylabel('Y 轴', fontsize=12, fontname='Heiti TC')
plt.text(0.5, 0.5, '文本标注', fontname='Heiti TC')

可用字体

常用系统字体:

  • Heiti TC - 华文黑体(用户偏好)
  • Songti SC - 华文宋体

查询所有可用字体:

python3 -c "import matplotlib.font_manager as fm; print('\n'.join(sorted(set([f.name for f in fm.fontManager.ttflist]))))"

常见问题

字体不生效

  1. 清除字体缓存

```bash

rm -rf ~/.matplotlib

```

或运行 scripts/clear_cache.py

  1. 强制指定字体

使用 fontname 参数而不是 rcParams

  1. 检查字体是否存在

运行 scripts/list_fonts.py 查看系统可用字体

负号显示为方块

plt.rcParams['axes.unicode_minus'] = False

保存图片时中文乱码

确保保存前字体已正确设置:

plt.savefig('/tmp/chart.png', dpi=120, bbox_inches='tight')

脚本工具

  • scripts/clear_cache.py - 清除 matplotlib 字体缓存
  • scripts/list_fonts.py - 列出系统可用中文字体
  • scripts/test_font.py - 测试指定字体的显示效果

参考资料

  • references/troubleshooting.md - 详细问题排查指南

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-29 20:29 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

data-analysis

Data Analysis

ivangdavila
{"answer":"数据分析与可视化。查询数据库、生成报告、自动化电子表格,将原始数据转化为清晰可行的见解。适用于:(1) 您……"}
★ 198 📥 64,917
data-analysis

Excel / XLSX

ivangdavila
创建、检查和编辑 Microsoft Excel 工作簿及 XLSX 文件,支持可靠的公式、日期、类型、格式、重算及模板保留功能。
★ 367 📥 140,076
developer-tools

Brainstorming

tazio7
在进行任何创造性工作(如创建功能、构建组件、添加功能或修改行为)之前,必须先执行此步骤。它将深入探索用户意图……
★ 5 📥 5,385