【问题标题】:How to embed custom font in bokeh for export_png如何为 export_png 在散景中嵌入自定义字体
【发布时间】:2018-09-05 07:20:39
【问题描述】:

我有一个自定义的 css 字体,我想将它嵌入到散景图中,以便适当地设置轴字体的样式。在实时 HTML 中,我可以独立于散景 HTML 组件添加这个 css。但是,当我想导出为 png (散景使用无头 phantomjs 和 selenium 导出)时,我需要在 export_png 函数完成工作之前嵌入这个 css。我尝试“扩展” Figure 类并添加 css,但是,这在最终 HTML 中显示为链接而不是内联 css。无论如何我可以做到这一点吗?我只需要使用自定义字体渲染的 png。

【问题讨论】:

    标签: python bokeh


    【解决方案1】:

    Bokeh 渲染到 HTML Canvas,这是一个不使用或不关注 CSS 的原始光栅绘图区域。 Bokeh 通过自己模型上的属性公开canvas font property,例如设置主要刻度标签的字体:

    p.axis.major_label_text_font = "helvetica"
    p.axis.major_label_text_font_size = "5pt"
    

    文档列出了所有通用kinds of text properties,以及所有属性specific to axes

    可能要加载外部自定义字体,您还需要按照此 SO 问题中的指导首先加载字体:How can I use custom fonts in an HTML5 Canvas element?

    【讨论】:

    • 感谢 bigreddot。通常,如果我将 bokeh 对象中的字体设置为“my_special_font”,然后获取 bokeh 组件并将它们嵌入 HTML,我需要做的就是将我的字体 css 添加到我的最终 HTML 页面中。散景 JS 似乎可以接受它。在这种情况下,我的问题是,如果我想 export_png 我的图形(例如到一个文件),我需要以某种方式告诉渲染器我的字体是什么。由于散景使用无头浏览器进行渲染。我认为它应该能够在渲染之前理解我的 CSS。我只需要知道如何在它进行屏幕截图和导出 png 之前包含它。
    • 哦,我明白了,这实际上可能需要新的开发。我不确定当前是否有任何钩子可以自定义无头浏览器使用的 CSS。您也许可以将 CSS 添加到 Resources 对象,但如果您无法做到这一点,那么下一步就是 GitHub 问题。
    猜你喜欢
    • 2016-09-08
    • 2018-06-16
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多