散景——情节外的传说

Bokeh - legend outside the plot

有很多类似的问题,但我找不到一个符合我正在寻求解决方法的问题。

在散景中,我们不能将图例移到情节之外,我们必须创建一个。如果我们现在尝试将传说从内部移到外部,那么传说就会消失。在 documentation (and in the solutions provided I have found in SO like 1, 2, and this 解决方案中进行了复制,但似乎使用了过时的功能),要绘制外部图例,您需要根据数据而不是绘图创建图例。

但是,是否可以访问地块内的现有图例,复制它,然后创建外部图例.. 使用该副本?

我正在寻找这种方法,因为我开发了一个函数来创建这个图,它有两个 x 轴(日期和每个日期的类别)和两个 y 轴(百分比和整数),所以创建了一个图例适合每一种颜色,每一种线条风格,每次类别变化,每一个情节......有点复杂。因此,由于内部图例非常完美,我认为将其复制到外部新图例会非常简单,但是我一直无法做到。

有什么建议吗?

是这样的吗?

from bokeh.io import show
from bokeh.models import Legend
from bokeh.plotting import figure

p = figure(tools=[])
p.circle(x=[0, 1], y=[0, 1], size=10, legend_label='Circle')

legend = p.legend[0]
p.center = [item for item in p.center if not isinstance(item, Legend)]
p.add_layout(legend, 'right')

show(p)