为什么BokehJS不会在GitHub上呈现的Jupyter / IPython笔记本中显示?

时间:2016-08-23 08:07:57

标签: github ipython jupyter jupyter-notebook bokeh

我在Jupyter笔记本中有以下代码:

import numpy as np
from bokeh.plotting import figure, show
from bokeh.io import output_notebook
N = 4000
x = np.random.random(size=N) * 100
x = np.random.random(size=N) * 100
radii = np.random.random(size=N) * 1.5
colors = ["#%02x%02x%02x" % (r, g, 150) for r, g in zip(np.floor(50+2*x), np.floor(30+2*y))]
output_notebook()
# Loading BokehJS ...
p = figure()
p.circle(x, y, radius=radii, fill_color=colors, fill_alpha=0.6, line_color=None)
show(p)

然而,它没有显示任何情节或图形;它只是停留在"加载BokehJS"。

原则上,这应该适用于nbviewer,因为渲染的笔记本在GitHub上被剥夺了所有Javascript(我想?)。然而,根据我的经验,它并没有。

1 个答案:

答案 0 :(得分:2)

GitHub在渲染之前擦除所有Jupyter笔记本中的所有JavaScript(可能出于安全原因)。 Bokeh需要来自客户端库BokehJS的JavaScript代码才能呈现或执行任何操作。鉴于此,遗憾的是,我不希望Jupyter笔记本中的Bokeh绘图永远在GitHub上工作。

我非常希望它可行,但它完全不受我们的控制。我已经联系了GitHub,要求选择在回购中完全禁用笔记本的渲染,理由是“完全不渲染”比“渲染但看起来破碎”更好,但没有从它们那里听到回复。

请注意,nbviewer 剥离JavaScript,这就是为什么Bokeh nbviewer.org gallery上的所有笔记本都显示正常的原因。