2017-05-02 7 views
0

bokehプロットパッケージをpythonで使用していて不満を感じていました。だから私はジュピターノート(ノートブックバージョン5.0.0)を持っています。そこにはボケプロットがあります。ノートブックはかなり大きくなっているので、読み込むのに少し時間がかかります。とにかく、私がMatplotlibを使用していたときに、ノートブックの画像がキャッシュされました。そうすれば、ノートブックを走らせるたびにそれらを再実行する必要はありません。python bokehプロットパッケージがjupyterノートブックでプロットをキャッシュしない

Bokehは画像をキャッシュする能力は同じですが、画像キャッシュを動作させることができません。だから、非常に単純な例として、ノートブックに次のコードがあれば:

from bokeh.resources import INLINE 
import builtins 
import os, sys 
import time 
import pyugend 
import datetime 
from IPython.lib import deepreload 
builtins.reload = deepreload.reload 
from ipywidgets import widgets 
from IPython.display import display 
from bokeh.io import show, output_notebook 
from bokeh.layouts import gridplot 
from bokeh.palettes import Viridis3 
from bokeh.plotting import figure 
from bokeh.charts import defaults 
from bokeh import mpl 
defaults.width = 700 
defaults.height = 700 

output_notebook(resources=INLINE) 
#output_notebook() 
#notebook_handle=True 
%reload_ext autoreload 
time.sleep(1) 

from bokeh.sampledata.iris import flowers 

colormap = {'setosa': 'red', 'versicolor': 'green', 'virginica': 'blue'} 
colors = [colormap[x] for x in flowers['species']] 

p = figure(title = "Iris Morphology") 
p.xaxis.axis_label = 'Petal Length' 
p.yaxis.axis_label = 'Petal Width' 

p.circle(flowers["petal_length"], flowers["petal_width"], 
     color=colors, fill_alpha=0.2, size=10) 


show(p) 

このプロットはうまく動作します。しかし、私がノートを保存して閉じ、再び開いたとき、プロットは再び現れなかった。

他にもこの問題があります。

答えて

0

私はこの質問に対する答えを理解しました。だから、問題はJupyterの初期化セルの拡張であった。ノートブックの一番下にある初期化セルにbokehのインポートを行うコードがありました。しかし、私が何らかの理由でこれを行ったとき、ノートブックの初期のプロットセルはキャッシュされた画像を表示していませんでした。

私は基本的に初期化セルのインポートをノートブックの冒頭に置く必要がありました。その後、画像のキャッシュが機能しました。興味深い問題。

関連する問題