【问题标题】:holoviews plot not shown全息图未显示
【发布时间】:2017-09-21 20:58:14
【问题描述】:

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

【问题讨论】:

  • jlstevens 在下面回答了您的问题,但为了将来参考,如果在 Jupyter Notebook 单元格中单独使用 BokehDisplay() 工作的原因是它返回一个 HoloViews 对象,并且如果在笔记本中返回某些内容如果可以,单元格 Jupyter 将显示它。但是 DynamicDisplay() 没有返回值,因此在这种情况下不会显示任何内容。

标签: python plot bokeh holoviews


【解决方案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()

希望对您有所帮助。

【讨论】:

  • 这里如果一个单元格以“dmap”结尾,则该图将被显示,然后动态更新由一个独立单元格处理,该单元格not i> 返回一个值...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-26
  • 1970-01-01
  • 2013-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多