为什么我不能在条形图上调用Bokeh file_html?

时间:2015-01-10 12:32:57

标签: python bokeh

所以我有以下代码,效果很好:

from bokeh.plotting import circle
from bokeh.resources import CDN 
from bokeh.embed import file_html

plot = circle([1,2], [3,4])

html = file_html(plot, CDN, "my plot")

html最终包含一个绘制圆圈的html字符串。但是,我无法使用Bar对象执行相同的操作。

from bokeh.plotting import circle
from bokeh.resources import CDN 
from bokeh.embed import file_html

plot = Bar(OrderedDict(tuples))

html = file_html(plot, CDN, "my plot")

失败并显示错误:

Traceback (most recent call last):
  File "./viz.py", line 66, in <module>
    html = file_html(b, CDN, "my plot")
  File "/usr/local/lib/python2.7/dist-packages/bokeh/embed.py", line 120, in file_html
    script, div = components(plot_object, resources)
  File "/usr/local/lib/python2.7/dist-packages/bokeh/embed.py", line 41, in components
    ref = plot_object.ref
AttributeError: 'Bar' object has no attribute 'ref'

我假设Bar对象不是绘图对象。我怎样才能把它变成一个?

2 个答案:

答案 0 :(得分:2)

此问题(使用当前的Bokeh版本0.7.1)已经回答herehere

考虑到您的代码,以下内容应该有效:

from bokeh.charts import Bar
from bokeh.resources import CDN 
from bokeh.embed import file_html

plot = Bar(OrderedDict(tuples))
plot.show()
html = file_html(plot.chart.plot, CDN, "my plot")

答案 1 :(得分:1)

偶然发现了这一点。有一段时间了,肯定是0.12,原始代码不应再生成错误。