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

Seaborn中使用自定义TTF字体报错‘Roboto未找到’求助(无sudo权限)

解决无sudo权限下Seaborn使用自定义TTF字体的问题

问题根源

你遇到的Font family 'Roboto' not found警告,是因为未通过系统安装字体时,Matplotlib的字体缓存未更新,无法识别Roboto家族名。以下是几种无需系统安装字体的可行方案:


方案一:直接在绘图元素中指定FontProperties

绕开字体家族名查找,直接将自定义字体的FontProperties对象传给需要设置字体的绘图元素:

from matplotlib import font_manager
import seaborn as sns
import matplotlib.pyplot as plt

# 加载自定义字体
path = "path/to/Roboto-Black.ttf"
roboto_black = font_manager.FontProperties(fname=path)

# 基础绘图
tips = sns.load_dataset("tips")
ax = sns.boxplot(x="day", y="total_bill", data=tips)

# 为各类文本元素指定字体
ax.set_xlabel("Day", fontproperties=roboto_black)
ax.set_ylabel("Total Bill", fontproperties=roboto_black)
ax.tick_params(axis='both', fontproperties=roboto_black)
ax.set_title("Total Bill by Day", fontproperties=roboto_black)

plt.show()

方案二:更新Matplotlib字体缓存并设置家族名

强制刷新Matplotlib的字体缓存,让其识别新增的自定义字体,再通过家族名全局设置:

from matplotlib import font_manager, matplotlib
import seaborn as sns
import matplotlib.pyplot as plt

# 清理旧字体缓存,强制重新加载
matplotlib.font_manager._load_fontmanager(try_read_cache=False)

# 添加字体到FontManager
path = "path/to/Roboto-Black.ttf"
fm = font_manager.FontManager()
fm.addfont(path)

# 获取并使用字体家族名
font_family = font_manager.FontProperties(fname=path).get_name()
sns.set(font=font_family)

# 测试绘图
tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=tips)
plt.title("Total Bill by Day")
plt.show()

方案三:通过Matplotlib rcParams全局指定字体

直接修改Matplotlib的配置参数,强制使用自定义字体,无需依赖家族名:

from matplotlib import font_manager, rcParams
import seaborn as sns
import matplotlib.pyplot as plt

path = "path/to/Roboto-Black.ttf"
roboto_black = font_manager.FontProperties(fname=path)

# 全局覆盖字体配置
rcParams['font.family'] = [roboto_black.get_name()]
rcParams['font.sans-serif'] = [roboto_black.get_name()]

sns.set()

# 绘图测试
tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=tips)
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:01:02