0

我想使用全息视图显示散射图并每 10 秒更新一次图。因此,我编写了一个函数“BokehDisplay”来绘制散射图而不进行更新,然后我添加了另一个函数“DynamicDisplay”以每 10 秒更新一次散射图。然而,散射图只在我运行第一个函数时出现,而在我运行第二个函数时没有出现。任何提示将不胜感激!谢谢!

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
4

1 回答 1

2

您需要将返回的可调用包装Scatter在 a 中DynamicMap,以便您可以使用以下方法定期更新它event

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()

希望有帮助。

于 2017-09-21T12:58:14.533 回答