【问题标题】:How do i get my interactive Holoviews graph to display in Visual Studio (without Jupyter)?如何让我的交互式 Holoviews 图形显示在 Visual Studio(没有 Jupyter)中?
【发布时间】:2019-09-17 09:16:54
【问题描述】:

在使用 Holoviews 进行交互式绘图时,我主要使用 Jupyter Notebook / Lab。
如何在不使用 Visual Studio 中的 Interactive Jupyter 的情况下让 Visual Studio 显示我的交互式图形和面板?

【问题讨论】:

    标签: python visual-studio holoviews holoviz panel-pyviz


    【解决方案1】:

    在 Visual Studio 中使用 Holoviews 等交互式图表的一种方法是执行代码以在浏览器中显示图表(Holoviews 的用途)。
    下面的示例将您的 Holoviews 图表放在面板中,并启动 Bokeh 服务器。
    它会在您的浏览器上打开一个新标签并显示您的图表。

    # library imports
    import numpy as np
    import pandas as pd
    import holoviews as hv
    hv.extension('bokeh', logo=False)
    import panel as pn
    
    # create sample data
    data = np.random.normal(size=[50, 2])
    df = pd.DataFrame(data, columns=['col1', 'col2'])
    
    # create holoviews graph
    hv_plot = hv.Points(df)
    
    # display graph in browser
    # a bokeh server is automatically started
    bokeh_server = pn.Row(hv_plot).show(port=12345)
    
    # stop the bokeh server (when needed)
    bokeh_server.stop()
    

    【讨论】:

    • hv_plot 也可以像在另一个答案中一样创建;与hv_plot = df.hvplot(kind="scatter", x="col1", y="col2")。然后,我相信不需要导入holoviews。不确定hv.extension('bokeh', logo=False) 做了什么,但我似乎不需要它(它与 Jupyter 笔记本有关吗?)。
    • 是的,hv.extension() 并不是必需的。而且,由于问题提到了 HoloViews 而不是 hvplot,所以我创建了一个带有 holoviews 而不是 hvplot 的图。但在这里两者都可以:)
    【解决方案2】:

    最简单的解决方案是将bokeh设置为渲染器的后端,然后使用bokeh.render.show()。这将在浏览器中打开您的全息图:

    hv.extension('bokeh')
    from bokeh.plotting import show
    
    show(hv.render(your_holoviews_plot))
    

    完整的工作示例:

    # import libraries
    import numpy as np
    import pandas as pd
    import hvplot.pandas
    import holoviews as hv
    
    # setting bokeh as backend
    hv.extension('bokeh')
    
    # going to use show() to open plot in browser
    from bokeh.plotting import show
    
    # create some sample data
    data = np.random.normal(size=[50, 2])
    df = pd.DataFrame(
        data=data,
        columns=['col1', 'col2'],
    )
    
    # using hvplot here to create a holoviews plot
    # could have also just used holoviews itself
    plot = df.hvplot(kind='scatter', x='col1', y='col2')
    
    # use show() from bokeh
    show(hv.render(plot))
    

    【讨论】:

      猜你喜欢
      • 2017-09-03
      • 1970-01-01
      • 2020-11-30
      • 2021-08-01
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多