Я написал класс Python, который способен отображать данные в реальном времени на разных графиках .Он основан на питоне боке .По сути, это абстракция встраивания сервера bokeh в библиотеку, которая способна динамически добавлять и удалять рисунки и линейные символы во время выполнения.Чтобы это происходило неблокирующим образом, основной класс расширяет многопоточность. Thread .Все коды можно найти здесь .
Проблема, с которой я столкнулся, заключается в том, что цифры не всегда отображаются правильно.Часто Заголовок и Toobar рисунков не отображаются , как показано здесь (щелкните по нему, чтобы увеличить изображение на рисунке):
После появления ошибки javascript в консоли отладки браузера (google chrome):
Uncaught TypeError: Невозможно прочитать свойство 'draw_legend' из неопределенного
Чтобы добавить цифры во время выполнения, я использую код ниже, где fig - словарь, который содержит все объекты фигур в моих проектах, а cds - словарь всех соответствующих объектов ColumnDataSource:
if not fig_name in fig:
print('add fig ' + fig_name)
# create plot
TOOLS="pan,wheel_zoom,box_zoom,reset, save, tap, hover"
fig[fig_name]=figure(plot_width=900, plot_height=280, tools=TOOLS, toolbar_location='right', logo=None, title=(fig_name), name=str(fig_name))
cds[fig_name]=ColumnDataSource(data=dict(x=np.array([])), name=(fig_name+'_cds'))
plt_col=doc.get_model_by_name('plt_ui_col').children
plt_col.append( fig[fig_name] )
Это ошибка боке?
Я что-то упустил?(Может быть, создание каких-то классов, от которых зависят цифры?)
Я использую python3.6 и bokeh 0.12.16.