所以我有以下代码,效果很好:
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
对象不是绘图对象。我怎样才能把它变成一个?
答案 0 :(得分:2)
此问题(使用当前的Bokeh版本0.7.1)已经回答here和here。
考虑到您的代码,以下内容应该有效:
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,原始代码不应再生成错误。