Я пытаюсь построить несколько временных рядов на одной диаграмме с боке. Некоторые серии будут иметь разную длину, чем другие, но я хочу, чтобы они отображались.Bokeh «источник» с разными столбцами длина
На данный момент у меня есть предупреждение, указывающее, что весь столбец источника не имеет такой же длины, но Bokeh, кажется, автоматически регулирует размеры.
Другая важная вещь, мне нужно иметь все значения «Y» временного ряда в того же источника, поскольку я использую обратный вызов в JS для создания и интерактивного построения графика.
обратного вызова:
callback = CustomJS(args=dict(source=source), code="""
// data contains the source.column_names keys
var data = source.get('data');
// f contains the name of the time series to be plotted
var f = cb_obj.get('value');
// For each key in the source, find the lines to be plotted
for (i = 0; i < Object.keys(data).length; i++) {
curr_key = Object.keys(data)[i];
// 'line' identifier is used to recognise columns of sources which represent Y values
if (curr_key.includes('line')) {
id_ = curr_key.split('_')[0];
associated_save = id_.concat('_save_y');
// If the time series is in the selected to be plotted, set the data to plot it
if (f.indexOf(curr_key) > -1) {
data[curr_key] = data[associated_save]
} else { // else, fixe to nan to erase it
data[curr_key] = 'nan'
}
}
}
source.trigger('change');
""")
Алгоритм состоит в петле над COLUMN_NAMES источника для того, чтобы участок/или unplot соответствующего временного ряда.
Могу ли я предоставить список источников здесь args=dict(source=source)
? следует ли игнорировать предупреждение, но мои ряды обрезаются или я должен обрабатывать его другим способом?
Участок работает довольно хорошо, но я стараюсь, чтобы удалить предупреждение ...
Спасибо!
Я решил проблему с выборкой вниз для этого времени. Как вы упомянули, данные не всегда адаптированы для этого метода. О вашем втором варианте, мои знания JavaScript в этот момент не позволяют мне более сложные вещи. :) Но спасибо за этот ответ! – glihm