61 lines
2.1 KiB
Python
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()
|
|
# ---------------------------------------------------- |