2015-11-02 8 views
1

Я пытаюсь построить базовый штрих-код, но я продолжаю видеть ошибку под названием «StopIteration». Я следую примеру, и код кажется нормально:Графики планшета с Bokeh

amount = bugrlary_dict.values() 
months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"] 

print len(amount) 
print len(months) 
bar = Bar(amount, months, filename="bar.html") 

bar.title("Bar Chart of the Amount of Burglaries").xlabel("Months").ylabel("Amount") 
bar.show() 
+0

Вы получаете сообщение об ошибке, но все, кажется, хорошо, это значит, что сюжет продолжает появляться? Является ли 'StopIteration' единственным, что вы думаете, или есть больше? – Leb

+0

смысл, код кажется хорошо. Нет графика. Я отредактирую это. – DrWolfe

ответ

2

UPDATEэтот ответ устарело и не будет работать с версиями бока новее 0.10

Пожалуйста, обратитесь к recent documentation



Вы передаете недопустимый ввод. Из doc:

(Dict, OrderedDict, списки, массивы и DataFrames являются правильными входами)

Это пример они там:

from collections import OrderedDict 
from bokeh.charts import Bar, output_file, show 

# (dict, OrderedDict, lists, arrays and DataFrames are valid inputs) 
xyvalues = OrderedDict() 
xyvalues['python']=[-2, 5] 
xyvalues['pypy']=[12, 40] 
xyvalues['jython']=[22, 30] 

cat = ['1st', '2nd'] 

bar = Bar(xyvalues, cat, title="Stacked bars", 
     xlabel="category", ylabel="language") 

output_file("stacked_bar.html") 
show(bar) 

Ваш amount является dict_values() которые не принимаются. Я не уверен, что ваш bugrlary_dict есть, но у меня это как data для Bar(), и я предполагаю, что ваш months - это ярлык. Это должно работать при условии, len(bugrlary_dict) == 12

Выхода из примера бока в:

enter image description here

1

В Bokeh 0.12.5, вы можете сделать это следующим образом:

from bokeh.charts import Bar, output_file, show 

# best support is with data in a format that is table-like 
data = { 
    'sample': ['1st', '2nd', '1st', '2nd', '1st', '2nd'], 
    'interpreter': ['python', 'python', 'pypy', 'pypy', 'jython', 'jython'], 
    'timing': [-2, 5, 12, 40, 22, 30] 
} 

# x-axis labels pulled from the interpreter column, grouping labels from sample column 
bar = Bar(data, values='timing', label='sample', group='interpreter', 
     title="Python Interpreter Sampling - Grouped Bar chart", 
     legend='top_left', plot_width=400, xlabel="Category", ylabel="Language") 

output_file("grouped_bar.html") 
show(bar) 

Выход:

enter image description here

Изменение параметра в Bar() от group к stack если вы хотите столбчатую диаграмму

Смежные вопросы