Files
ReinLoopTest/ReinLoop/tool/plt_font.py
T
2026-07-30 11:12:31 +08:00

61 lines
2.1 KiB
Python

import matplotlib
import shutil
import os
# 获取 Matplotlib 缓存目录
cache_dir = matplotlib.get_cachedir()
print(f"正在清理缓存目录: {cache_dir}")
# 删除缓存
if os.path.exists(cache_dir):
shutil.rmtree(cache_dir)
print("字体缓存已清除!请重新运行你的主程序。")
else:
print("未找到缓存目录。")
import os
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# ----------------- 强制解决中文乱码 (Mac版) -----------------
def force_chinese_font_mac():
"""强制加载 macOS 系统自带的苹方或黑体"""
# macOS 常见中文字体路径
font_paths = [
"/System/Library/Fonts/PingFang.ttc", # 苹方 (现代 macOS 默认中文字体)
"/System/Library/Fonts/STHeiti Light.ttc", # 华文黑体
"/System/Library/Fonts/STHeiti Medium.ttc", # 华文黑体 (中等粗细)
"/System/Library/Fonts/Supplemental/Songti.ttc", # 宋体 (部分较新 macOS 系统的路径)
"/Library/Fonts/Arial Unicode.ttf" # 包含中文的通用字体
]
font_loaded = False
for path in font_paths:
if os.path.exists(path):
try:
# 强制将字体加入 Matplotlib 的内存库
fm.fontManager.addfont(path)
# 获取该字体在 matplotlib 内部的真实名称
prop = fm.FontProperties(fname=path)
plt.rcParams['font.family'] = prop.get_name()
font_loaded = True
print(f"已成功加载 Mac 系统字体: {path}")
break # 加载成功一个就跳出
except Exception as e:
print(f"尝试加载字体 {path} 失败: {e}")
continue
if not font_loaded:
print("警告: 未在 macOS 默认路径找到中文字体文件。")
# 解决负号 '-' 显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False
# 立即执行字体加载
force_chinese_font_mac()
# ----------------------------------------------------