You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pycaret plot_model()不支持泰文字体问题及解决求助

解决PyCaret plot_model() 泰文字体显示异常问题

核心原因

你之前用的Tahoma字体仅支持有限的泰文字符,无法覆盖全部泰文编码,导致复杂字符显示为方块。必须使用专门的泰文黑体才能彻底解决。

分步解决方法

  • 第一步:确认系统安装泰文支持字体
    推荐安装TH Sarabun New(常用办公泰文黑体)或Angsana New:Windows/macOS可通过系统字体商店安装,Linux可通过包管理器安装(比如Ubuntu执行sudo apt install fonts-thai-tlwg)。

  • 第二步:正确配置Matplotlib全局字体
    PyCaret有时会覆盖Matplotlib的默认配置,要在调用plot_model()前显式设置,确保泰文字体优先级最高:

    import matplotlib.pyplot as plt
    # 优先使用泰文黑体, fallback 到Tahoma
    plt.rcParams['font.family'] = 'sans-serif'
    plt.rcParams['font.sans-serif'] = ['TH Sarabun New', 'Angsana New', 'Tahoma']
    plt.rcParams['axes.unicode_minus'] = False  # 避免负号显示为方块
    
  • 第三步:验证字体是否被Matplotlib识别
    如果配置后仍无效,先检查Matplotlib能不能找到你的泰文字体:

    import matplotlib.font_manager as fm
    # 筛选并打印泰文字体
    for font in fm.fontManager.ttflist:
        if 'Sarabun' in font.name or 'Angsana' in font.name:
            print(f"找到字体: {font.name} | 路径: {font.fname}")
    

    如果没有输出,说明字体未安装或Matplotlib未加载,需要手动指定字体文件。

  • 第四步:手动加载本地字体文件(可选)
    如果系统没安装或Matplotlib识别不到,直接加载本地TTF字体文件:

    import matplotlib.font_manager as fm
    import matplotlib.pyplot as plt
    
    # 替换为你的泰文字体文件实际路径
    font_path = '/home/user/fonts/THSarabunNew.ttf'
    fm.fontManager.addfont(font_path)
    # 设置全局字体
    plt.rcParams['font.sans-serif'] = ['TH Sarabun New']
    plt.rcParams['axes.unicode_minus'] = False
    
  • 第五步:强制PyCaret使用当前配置
    确保在导入PyCaret模块后、调用plot_model()前执行上述字体配置代码,避免PyCaret初始化绘图环境时覆盖设置。

问题表现说明

图表中的泰文字符显示为空心方块(□),属于字体缺失导致的无法渲染状态。

内容的提问来源于stack exchange,提问作者Kendo Nextbest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 00:50:13