Files
DB-GPT/skills/walmart-sales-analyzer/scripts/font_setup.py
Aries-ckt ef83851b31 🎉 DB-GPT V0.8.0 - Beta Testing (#2988)
Co-authored-by: lusain <lusain1990@gmail.com>
Co-authored-by: alan.cl <1165243776@qq.com>
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 11:55:42 +08:00

44 lines
1.2 KiB
Python

import matplotlib
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
def setup_chinese_font():
"""Configure matplotlib to render Chinese characters correctly.
Tries a priority-ordered list of CJK fonts commonly available on
macOS, Linux, and Windows. Falls back to whatever the system has.
"""
candidates = [
# macOS
"Heiti TC",
"Hiragino Sans GB",
"PingFang SC",
"PingFang HK",
"STHeiti",
"Songti SC",
"Arial Unicode MS",
# Linux
"Noto Sans CJK SC",
"Noto Sans SC",
"WenQuanYi Micro Hei",
"WenQuanYi Zen Hei",
"Droid Sans Fallback",
# Windows
"Microsoft YaHei",
"SimHei",
"SimSun",
]
available = {f.name for f in fm.fontManager.ttflist}
for font_name in candidates:
if font_name in available:
plt.rcParams["font.sans-serif"] = [font_name, "sans-serif"]
plt.rcParams["font.family"] = "sans-serif"
plt.rcParams["axes.unicode_minus"] = False
return
# Last resort: let matplotlib pick, but still fix minus sign
plt.rcParams["axes.unicode_minus"] = False