Я разрабатываю макет Bokeh, используя сервер Bokeh.Я определяю два основных столбца (см. Прикрепленное изображение) и пытаюсь связать ось X всех графиков в правом столбце.Проблемы заключаются в том, что:
Я пытаюсь сделать это приложение максимально динамичным, что означает, что в зависимости от тематического исследования будут доступны не все графики, а каждый человек.plot устанавливается из отдельной функции
Каждый объект графика хранится в списке, и я не знаю, как получить доступ к их свойствам
Ссылочный график неизвестен a priori , поэтому я не вижу, как реализовать пример в Bokeh doc - другими словами, мне нужно сначала построить все вспомогательные участкизатем получить соответствующий x_range
Так что мне было интересно, можно ли установить поведение связывания a posteriori после определения всех графиков в столбце (т. е.вывод plotDataset
ниже).Моя интуиция состоит в том, чтобы пройтись по объектам, найти детей и установить x_range
для первого графика, но я не знаю, как это сделать.
Ниже приведена упрощенная версия того, что я пытаюсьдостигать.В идеале я должен получить x_range первого графика fCol
и применить его ко всем остальным графикам непосредственно перед return column(fCol)
. Любая идея будет высоко оценена!Кроме того, я довольно новичок в Python, поэтому, пожалуйста, кричите, если увидите что-то еще ужасное!
Спасибо
def plotTS(data, col):
tTmp = []
# A loop that defines each tab of the plot
for i in range(len(col)):
fTmp = figure()
fTmp.circle(data[:]['time'], data[:][col[i]], color=color)
# Append tab
tTmp.append(Panel(child=fTmp))
# Return the tabs
return Tabs(tabs=tTmp)
def plotDataset(data):
col = ['NDVI', 'EVI'] # Name of the tabs
fCol = []
fCol.append(plotTS(data, col))
# NOTE: I use an append approach because in reality plotTS is called more than once
return column(fCol)
# General layout - I did not include the code for the left column
layout = row(leftColumn, plotDataset(data))
Ссылка на изображение