2017-09-20 37 views
0

holoviewsを使用して散布図を表示し、10秒ごとにプロットを更新したい。そこで、私は、更新せずに散乱プロットをプロットするための関数 "BokehDisplay"を作成し、次に10秒ごとに散乱プロットを更新する別の関数 "DynamicDisplay"を追加しました。しかし、散布プロットは、最初の関数を実行したときにのみ表示されましたが、2番目の関数を実行したときには表示されませんでした。どんなヒントも高く評価されるでしょう!ありがとう!holoviewsプロットが表示されない

from datetime import datetime 
import holoviews as hv 
import numpy as np 
import time 
hv.extension('bokeh') 

def BokehDisplay(): 
    x, y = [], [] 
    with open("evening_commute_time.txt", "r") as f: 
     for line in f: 
      x.append(line[:19]) 
      y.append(int(line[27:29])) 
    x_time = np.array(x, dtype = np.datetime64) 
    scatter = hv.Scatter((x_time,y), kdims = ['starting time'], vdims = ['Commute Time (min)']) 
    return scatter 

def DynamicDisplay(flag): 
    while flag > 0: 
     BokehDisplay() 
     time.sleep(10) 
     flag -= 1 
+0

jlstevensはあなたの質問に答えましたが、Jupyter NotebookセルでBokehDisplay()が使用された場合は、HoloViewsオブジェクトを返し、ノートブックセルに何かが返された場合はJupyterが表示しますそれができるならば。しかし、DynamicDisplay()には戻り値がありません。したがって、その場合は何も表示されません。 –

答えて

2

あなたはそうあなたがevent方法で定期的に更新することができDynamicMapScatterを返すあなたの呼び出し可能なラップする必要があります。

import time 
from holoviews.streams import Stream 

dmap = hv.DynamicMap(BokehDisplay, streams=[Stream.define('next')()]) 
dmap # Display the DynamicMap here 

while True: # In a new notebook cell 
    time.sleep(10) 
    dmap.event() 

希望に役立ちます。

+0

ここで、セルが "dmap"で終わると、プロットが表示され、動的更新は*値を返さない*独立した*セルによって処理されます... –