全息图未显示

holoviews plot not shown

我想使用全息图显示散射图并每 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

您需要将返回 Scatter 的可调用函数包装在 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()

希望对您有所帮助。