Использование Bokeh для выпадающего меню, которое будет создавать различные графики - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь создать выпадающий интерфейс для моей работы.Мой набор данных выглядит следующим образом: это случайный набор данных

enter image description here

Теперь я хотел бы, чтобы 2 раскрывающихся списка сказали здесь CNN и BBC.После выбора канала в раскрывающемся списке я хотел бы выбрать тему, в которой будет отображаться гистограмма в соответствии с ее значением.

Сначала я пытаюсь получить доступ только к одному значению, но при этом отображается пустой график.

from bokeh.plotting import figure

from bokeh.io import output_notebook,show,output_file

p=figure()

import csv
data = [row for row in csv.reader(open('C:/Users/Aishwarya/Documents/books/books_q4/crowd_computing/Bokeh-Python-Visualization-master/interactive/data/data.csv', 'r',encoding="utf8"))]

p.vbar(x=data[1][2], width=0.5, bottom=0,
            top=data[1][1], color="firebrick")

#output_notebook()
output_file('1.html')

show(p)

1 Ответ

0 голосов
/ 10 июня 2018

Вероятно, существуют две проблемы:

  • Первая заключается в том, что если вы используете категориальные координаты на оси, например, "CNN", который, как кажется, вы ожидаете использовать,тогда вам нужно указать Bokeh, что такое категориальный диапазон:

    p.figure(x_range=["CNN", ...]) # list all the factors for x_range
    

    Если вам нужно обновить ось позже, вы можете обновить диапазон напрямую:

    p.x_range.factors = [...]
    
  • Кроме того, по состоянию на Bokeh 0.13.0 существует текущая открытая проблема, которая не позволяет «отдельным» факторам работать в качестве координат: #6660 Координаты должны принимать единичные категориальные значения .В результате вы должны будете поместить данные в Bokeh ColumnDataSource explicityl (всегда опция), или в этом случае обходной путь также заключается в простой передаче списка из одного элемента:

    p.vbar(x=["cnn"], ...)
    

Вот полное обновление вашего кода с некоторыми поддельными данными:

from bokeh.plotting import figure
from bokeh.io import show

p = figure(x_range=["cnn"])

p.vbar(x=["cnn"], width=0.5, bottom=0, top=10, color="firebrick")

show(p)

enter image description here

Я бы тожерекомендуем изучить раздел руководства пользователя Обработка категориальных данных .

...