Bokeh - 子类 Figure

3
这是一个简单的bokeh“快速入门”示例:

最初的回答:

from bokeh.plotting  import Figure

output_file("lines.html")
xs = [1, 2, 3, 4, 5]
ys = [6, 7, 2, 4, 5]

p = Figure()
p.line(xs, ys, legend="Temp.", line_width=2)

show(p)

这个有效。 现在,如果我继承Figure类,脚本仍然可以正常运行并生成HTML页面,但是浏览器只会显示一个空白页面:


from bokeh.plotting  import Figure

class TestFigure(Figure):
    def __init__(self):
        super().__init__()    

output_file("lines.html")

xs = [1, 2, 3, 4, 5]
ys = [6, 7, 2, 4, 5]

p = TestFigure()
p.line(xs, ys, legend="Temp.", line_width=2)

show(p)

"最初的回答",这是故意的吗?
1个回答

3
Bokeh类具有高度的仪器化,以便于Python和JavaScript之间的自动序列化和同步。特别地,每个Bokeh类实际上都有两个部分,一个在Python中,另一个在JavaScript中。如果您在Python端子类化,则必须提供相应的JavaScript实现。因此,仅在Python端进行子类化是不够的,您需要创建一个完整的自定义扩展。除非您实际上正在利用自定义扩展可以提供的功能,否则这可能不值得努力。
TLDR:通常不应对Bokeh类进行子类化,除非要制作自定义(JavaScript)扩展。

好的,谢谢回复。我会研究自定义扩展。 - thorium

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接