【发布时间】:2019-09-17 09:16:54
【问题描述】:
在使用 Holoviews 进行交互式绘图时,我主要使用 Jupyter Notebook / Lab。
如何在不使用 Visual Studio 中的 Interactive Jupyter 的情况下让 Visual Studio 显示我的交互式图形和面板?
【问题讨论】:
标签: python visual-studio holoviews holoviz panel-pyviz
在使用 Holoviews 进行交互式绘图时,我主要使用 Jupyter Notebook / Lab。
如何在不使用 Visual Studio 中的 Interactive Jupyter 的情况下让 Visual Studio 显示我的交互式图形和面板?
【问题讨论】:
标签: python visual-studio holoviews holoviz panel-pyviz
在 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 笔记本有关吗?)。
最简单的解决方案是将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))
【讨论】: