Боке - легенда вне сюжета - PullRequest
0 голосов
/ 22 апреля 2020

Существует множество подобных проблем, но я не смог найти ни одного с подходом, который я искал, чтобы решить его.

В боке мы не можем переместить легенду за пределы сюжета, мы должны Создай. Если мы попытаемся в наше время переместить легенду изнутри наружу, легенда исчезнет. В документации (и в предоставленных решениях, которые я нашел в SO, например, 1 , 2 и это решение выполняет копирование, но кажется, использует устаревшие функции), чтобы построить легенду извне, вам нужно создать эту легенду из ваших данных, а не из графика.

Однако возможно ли получить доступ к существующей легенде внутри графика, скопировав ее, и создание внешней легенды .. с этой копией?

Я ищу этот подход, потому что я разработал функцию, которая создает этот график, с двумя осями X (дата и категория на дату) и двумя осями Y (проценты и целые числа), поэтому создается легенда это соответствует каждому цвету, каждому стилю линии, каждый раз, когда изменяются категории, для каждого сюжета ... это довольно сложно. Итак, поскольку внутренняя легенда просто идеальна, я подумал, что просто скопировать ее во внешнюю новую легенду было бы довольно просто, однако я не смог этого сделать.

Есть предложения?

1 Ответ

0 голосов
/ 22 апреля 2020

Как то так?

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)
...