4

假设我有一个包含一些数据并实现返回散景图的函数的类

import bokeh.plotting as bk
class Data():
    def plot(self,**kwargs):
        # do something to retrieve data
        return bk.line(**kwargs)

现在我可以实例化多个这样的 Data 对象,例如expssets创建单独的图。如果bk.hold()设置它们,它们会以一个数字结束(这基本上是我想要的)。

bk.output_notebook()
bk.figure()
bk.hold()
exps.scatter(arg1)
sets.plot(arg2)
bk.show()

在此处输入图像描述

现在我想将这些图聚合成一个GridPlot()我可以为非覆盖单图做的

bk.figure()
bk.hold(False)
g=bk.GridPlot(children=[[sets.plot(arg3),sets.plot(arg4)]])
bk.show(g)

在此处输入图像描述

但我不知道如何覆盖我之前作为 exps.scatter 的散点图。

有什么方法可以参考当前活动的人物,例如:

rows=[]
exps.scatter(arg1)
sets.plot(arg2)
af = bk.get_reference_to_figure()
rows.append(af) # append the active figure to rows list
bg.figure()     # reset figure

gp = bk.GridPlot(children=[rows])
bk.show(gp)
4

2 回答 2

6

从 Bokeh 0.7 开始,plotting.py界面已更改为更加明确,希望这将使此类事情变得更简单、更清晰。基本的变化是figure现在返回一个对象,因此您可以直接对这些对象进行操作,而不必想知道“当前活动”的情节是什么:

p1 = figure(...)
p1.line(...)
p1.circle(...)

p2 = figure(...)
p2.rect(...)

gp = gridplot([p1, p2])
show(gp)

几乎所有以前的代码现在都应该可以工作,但是hold, curplotetc. 已被弃用(如果您在启用弃用警告的情况下运行 python,则会发出弃用警告)并将在未来的版本中删除。

于 2014-12-17T14:03:10.227 回答
2

好吧,显然bk.curplot()是诀窍

exps.scatter(arg1)
sets.plot(arg2)
p1 = bk.curplot()
bg.figure()     # reset figure
exps.scatter(arg3)
sets.plot(arg4)
p2 = bk.curplot()
gp = bk.GridPlot(children=[[p1,p2])
bk.show(gp)
于 2014-11-13T16:01:31.200 回答