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

如何在SHAP柱状图中正常显示孟加拉语文字?

解决SHAP柱状图无法显示孟加拉语的问题

SHAP图表无法正常显示孟加拉语,本质是matplotlib默认未加载支持孟加拉语的字体,按以下步骤配置即可解决:

步骤1:确保系统有支持孟加拉语的字体

先确认你的系统中安装了支持孟加拉语的字体,比如:

  • Noto Sans Bengali(Google开源字体,兼容性好)
  • SolaimanLipi(常用孟加拉语字体)

Windows/macOS用户可直接从系统字体库启用,Linux用户可通过包管理器安装(例如Ubuntu用sudo apt install fonts-noto-sans-bengali)。如果没有现成字体,可从官方渠道下载后安装。

步骤2:在代码中配置matplotlib使用孟加拉语字体

在调用SHAP绘图代码前,添加matplotlib字体配置代码,两种方式任选其一:

方式1:直接指定字体名称

如果系统已安装目标字体,直接设置字体家族:

import matplotlib.pyplot as plt
# 设置matplotlib默认字体为支持孟加拉语的字体
plt.rcParams['font.family'] = 'Noto Sans Bengali'

# 原SHAP分析及绘图代码
pred = transformers.pipeline("text-classification", model=model, tokenizer=tokenizer, device=0, return_all_scores=True) 
explainer = shap.Explainer(pred) 
shap_values = explainer(list(X_val)[:5])
shap.plots.bar(shap_values[:, :, '2'].mean(0))

方式2:指定本地字体文件路径

如果字体未在系统全局注册,可直接指定字体文件路径:

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

# 替换为你的孟加拉语字体文件路径
bengali_font = FontProperties(fname="/path/to/NotoSansBengali-Regular.ttf")
plt.rcParams['font.properties'] = bengali_font

# 原SHAP分析及绘图代码
pred = transformers.pipeline("text-classification", model=model, tokenizer=tokenizer, device=0, return_all_scores=True) 
explainer = shap.Explainer(pred) 
shap_values = explainer(list(X_val)[:5])
shap.plots.bar(shap_values[:, :, '2'].mean(0))

额外注意事项

  • 若图表文字仍显示异常,可尝试调整字号:plt.rcParams['font.size'] = 12
  • 确保使用的matplotlib版本≥3.0,避免旧版本的字体兼容问题

内容的提问来源于stack exchange,提问作者Tanjim Taharat Aurpa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 10:37:10