2014-10-08 17 views
18

Czy ktoś wie, jak nosić legendę w bokeh poza z wykresu? Jedyna manipulacja mogłem zrobić, to wybrać pozycję wśród:Pozycja legendy w polu Bokeh

top_right, top_left, bottom_left or bottom_right 

używając:

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

i gdy próbuję różne z nich pojawia się komunikat o błędzie:

ValueError: invalid value for orientation: 'outside'; allowed values are top_right, top_left, bottom_left or bottom_right 
+0

jedno pytanie ściśle odnosić się do tego: jak zachować proporcje oryginalnego osi? –

Odpowiedz

11

dzień Bokeh 0.12.4 można umieścić legendy poza centralnym działkiem. Oto krótki przykład from the user's guide:

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) 

Aby dostosować położenie, zmień dx i dy w location=(dx, dy).

enter image description here

+0

Jak to zrobić, gdy używam API wykresów? – kynan

+0

Wymagałoby to przeniesienia położenia układu, co w tej chwili nie jest łatwe. Sugerowałbym, aby takie pytanie było skierowane na listę mailingową, ponieważ może to wymagać eksperymentowania i dyskusji. – bigreddot

+0

Miałem [zgłosił problem dla tej funkcji] (https://github.com/bokeh/bokeh/issues/4941). – kynan