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

问题描述:

我有一个Jupyter笔记本下面的代码:为什么BokehJS不会在GitHub上呈现的Jupyter/IPython笔记本中显示?

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(我认为?)。根据我的经验,但事实并非如此。

GitHub在渲染之前从所有Jupyter笔记本中擦除所有JavaScript(推测是出于安全原因)。 Bokeh需要来自客户端库BokehJS的JavaScript代码才能渲染或执行任何操作。鉴于此,不幸的是,我不希望Jupyter笔记本电脑中的散景图至曾有在GitHub上工作。

我非常希望它是可行的,但它完全在我们的控制范围之外。我已经与GitHub联系,要求提供一个选项来完全禁止在回购中的笔记本电脑进行渲染,理由是“完全不渲染”比“渲染但看起来破碎”更好,但没有从他们那里听到。

请注意,nbviewer确实不是带JavaScript,这就是为什么上的所有笔记本电脑都显示正常。

+0

>“请注意,nbviewer不会去除JavaScript,这就是为什么Bokeh nbviewer.org图库中的所有笔记本都显示正常。” 我注意到了这一点。当我将我的笔记本放在github上时,它们仍然没有显示出来。你如何使用nbviewer为了笔记本电脑出现? – ShanZhengYang

+0

“0.12.1”和静态呈现的笔记本可能存在问题。目前正在积极调查中,并将在'0.12.2'中解决。如果你愿意,你可以在GitHub上找到问题和WIP PR。现在我建议使用'0.12'。 – bigreddot

+0

链接到问题?谢谢 – ShanZhengYang