Plotly Express无法识别已安装自定义字体,求解决方法
Plotly无法识别已安装自定义字体的解决思路
已通过Tkinter确认HaboroSans-NormRegular字体已安装,但Plotly Express设置该字体后仍显示默认字体,可尝试以下方案:
1. 验证字体名称的精确匹配
Plotly对字体名称的匹配要求严格,可能需要使用字体的PostScript名称而非系统显示名称:
- Windows:使用FontForge等工具查看字体属性,或通过Git Bash/WSL执行
fc-list | grep Haboro搜索; - macOS/Linux:终端执行
fc-list | grep Haboro获取精确名称。
替换为正确名称后测试:
import plotly.express as px fig = px.line(x=[1,2,3], y=[1,2,3], title='Plot 123') fig.update_layout(titlefont_family='[正确的字体PostScript名称]') fig.show()
2. 手动注册字体文件
直接指定字体文件路径,强制Plotly加载该字体:
import plotly.io as pio import plotly.express as px # 注册自定义字体,替换为你的字体文件路径(.ttf/.otf格式) pio.kaleido.scope.fonts.add( dict(family='HaboroSans-NormRegular', path='C:/Windows/Fonts/HaboroSans-NormRegular.ttf') ) # 生成并设置字体 fig = px.line(x=[1,2,3], y=[1,2,3], title='Plot 123') fig.update_layout(titlefont_family='HaboroSans-NormRegular') fig.show()
3. 适配浏览器渲染后端
若使用浏览器渲染(如Jupyter Notebook或导出HTML),需确保浏览器能加载该字体,可嵌入字体样式到HTML中:
from plotly.offline import plot import plotly.express as px fig = px.line(x=[1,2,3], y=[1,2,3], title='Plot 123') fig.update_layout(titlefont_family='HaboroSans-NormRegular') # 嵌入字体样式到HTML custom_css = """ <style> @font-face { font-family: 'HaboroSans-NormRegular'; src: url('file:///C:/Windows/Fonts/HaboroSans-NormRegular.ttf') format('truetype'); } </style> """ html_output = custom_css + plot(fig, output_type='div') # 保存或直接查看HTML with open('custom_font_plot.html', 'w', encoding='utf-8') as f: f.write(html_output)
4. 清除Plotly缓存
Plotly可能缓存旧的字体配置,删除缓存目录后重启Python环境:
- Windows:
C:\Users\<你的用户名>\.plotly - macOS/Linux:
~/.plotly
内容的提问来源于stack exchange,提问作者drew wood
相关产品推荐
相关产品推荐

