как работать с ди c dict в боке ColumnDataSource? - PullRequest
0 голосов
/ 23 марта 2020

Я хочу получить несколько панелей с боке. У меня есть словарь точек

      dots={'0':{1:987,3:3,7:9,0:9},
            '1':{1:3,3:4,7:8,0:9},
            '2':{3:6,1:4,5:7},
             .
             .}

Я хочу показать диаграмму каждого ключа в dict точки , поэтому идея состоит в том, чтобы создать виджет выбора, который содержит все ключи точек затем когда я изменяю опцию выбора, гистограмма меняется:

from bokeh.models import HoverTool, ColumnDataSource
from bokeh.io import output_file, show
from bokeh.plotting import figure
from bokeh.layouts import widgetbox
from bokeh.models.widgets import Select
from bokeh.layouts import column


output_file("test.html")



Curr = ColumnDataSource(
    data=dots[0]
)

p = figure(plot_width=1500, plot_height=800, title="Frames occurence per rank for voyels",
           x_range=str_keys, toolbar_location=None, tooltips=[("Rank", "@keys"),("Occurence","@values")])
p.vbar(x='keys', top='values', width=0.5, source=source)

callback = CustomJS(args=dict(source=Overall, sc=Curr), code="""

        var f = Select.value
        here I want to put new data based on selected element
        sc.change.emit();
    """)

select = Select(title="Option:", value="0", options=["1", "2", "3", "4"])
select.js_on_change('value', callback)

layout = column(select, p)
show(layout)

Я хочу преобразовать точки в ColumNDataSource, чтобы использовать его в Custom JS

      Overall=ColumnDataSource(dots)

, который мне дает ошибка

   expected an element of ColumnData(String, Seq(Any)), got...

Как преобразовать точки в ColumnDataSource и как его проанализировать в JavaScript

Спасибо

...