Bokeh.charts 接口直到 Bokeh 版本 0.7.0 提供比绘图更高级别的抽象。它不从 Plot 继承,因此不能直接替换绘图实例。也就是说,图表类型有一个可以在这种情况下使用的底层绘图对象。它是懒惰地创建的,目前需要一些机器来使其对您的示例可用。有关图表的公开讨论很可能会在版本中变得更容易和更一致。
同时,您可以使用以下方法(更改您可以在示例/图表中找到的条形笔记本):
from collections import OrderedDict
import numpy as np
from bokeh.charts import Bar
from bokeh.sampledata.olympics2014 import data as original_data
from IPython.core.display import HTML
from bokeh.resources import CDN
from bokeh.plotting import circle
from bokeh.embed import autoload_static, notebook_div
data = {d['abbr']: d['medals'] for d in original_data['data'] if d['medals']['total'] > 0}
countries = sorted(data.keys(), key=lambda x: data[x]['total'], reverse=True)
gold = np.array([data[abbr]['gold'] for abbr in countries], dtype=np.float)
silver = np.array([data[abbr]['silver'] for abbr in countries], dtype=np.float)
bronze = np.array([data[abbr]['bronze'] for abbr in countries], dtype=np.float)
medals = OrderedDict(bronze=bronze, silver=silver, gold=gold)
bar = Bar(medals, countries, title="grouped, dict_input",
xlabel="countries", ylabel="medals", legend=True, width=800,
height=600)
bar.show()
plot = bar.chart.plot
div = notebook_div(plot)
js, tag = autoload_static(plot, CDN, "some/path")
jkl = HTML(div)
print div