#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 修复matplotlib中文字体显示问题 可选:在calibration_analyzer.py开头导入此模块 """ import matplotlib import matplotlib.pyplot as plt from pathlib import Path import platform def setup_chinese_font(): """ 配置matplotlib中文字体 自动检测操作系统并设置合适的中文字体 """ system = platform.system() if system == 'Windows': # Windows系统,尝试使用微软雅黑或SimHei fonts = ['Microsoft YaHei', 'SimHei', 'SimSun'] elif system == 'Darwin': # macOS fonts = ['PingFang SC', 'Heiti SC', 'STHeiti'] else: # Linux fonts = ['WenQuanYi Micro Hei', 'WenQuanYi Zen Hei', 'Noto Sans CJK SC', 'Droid Sans Fallback'] # 设置字体 matplotlib.rcParams['font.sans-serif'] = fonts matplotlib.rcParams['axes.unicode_minus'] = False # 解决负号显示问题 print(f"[字体配置] 系统: {system}") print(f"[字体配置] 尝试字体: {', '.join(fonts)}") def test_chinese_display(): """ 测试中文显示是否正常 """ setup_chinese_font() fig, ax = plt.subplots(figsize=(8, 6)) ax.plot([0, 1, 2, 3], [0, 1, 4, 9], 'b-', linewidth=2, label='测试曲线') ax.set_xlabel('时间 (秒)') ax.set_ylabel('速度 (m/s)') ax.set_title('中文字体显示测试') ax.legend() ax.grid(True, alpha=0.3) output_file = Path(__file__).parent / 'font_test.png' plt.savefig(output_file, dpi=150, bbox_inches='tight') print(f"[字体测试] 测试图表已保存: {output_file}") print("[字体测试] 请打开图片检查中文是否正常显示") plt.close() if __name__ == '__main__': test_chinese_display()