Position de la légende dans une parcelle de Bokeh

personne Ne sait comment effectuer la légende dans le bokeh dehors du graphique? La seule manipulation que je pouvais faire était de choisir une position parmi:

top_right, top_left, bottom_left or bottom_right

utilisation:

legend()[0].orientation = "bottom_left"

et quand j'essaie différents de ceux que je reçois le message d'erreur:

ValueError: invalid value for orientation: 'outside'; allowed values are top_right, top_left, bottom_left or bottom_right
19
demandé sur user1251007 2014-10-08 14:25:58

1 réponses

à partir de Bokeh 0.12.4 il est possible de placer des légendes en dehors de la zone centrale de la parcelle. Voici une courte exemple dans le guide de l'utilisateur:

import numpy as np
from bokeh.models import Legend
from bokeh.plotting import figure, show, output_file

x = np.linspace(0, 4*np.pi, 100)
y = np.sin(x)

output_file("legend_labels.html")

p = figure(toolbar_location="above")

r0 = p.circle(x, y)
r1 = p.line(x, y)

r2 = p.line(x, 2*y, line_dash=[4, 4], line_color="orange", line_width=2)

r3 = p.square(x, 3*y, fill_color=None, line_color="green")
r4 = p.line(x, 3*y, line_color="green")

legend = Legend(items=[
    ("sin(x)",   [r0, r1]),
    ("2*sin(x)", [r2]),
    ("3*sin(x)", [r3, r4])
], location=(0, -30))

p.add_layout(legend, 'right')

show(p)

Pour ajuster la position, changer dx et dylocation=(dx, dy).

enter image description here

14
répondu bigreddot 2017-03-28 01:36:24