8

我正在尝试创建一个环境,在其中使用 PyCharm 开发 Python 代码,同时使用全息视图和散景创建交互式图表。

我按照Holoview Introduction中的步骤操作,它在 Jupyter notebook 中工作——图表确实很好地交互。但是,当我在 PyCharm 的 Python 控制台中运行相同的代码时,没有显示图表或浏览器。

相反,当我直接调用 bokeh 的方法时,如本例所示,浏览器会启动,我可以交互地操作图表。我想使用 holoviews (+bokeh) 来实现这一点。

非常感谢您提前提供的帮助。

我的图书馆:

  • Python 3.4.5
  • 全息视图 1.8.1
  • 散景 0.12.6
  • 参数 1.5.1
  • ipython 6.1.0
  • jupyter 1.0.0
  • 熊猫 0.20.3
  • numpy 1.13.1
  • scipy 0.19.1
4

2 回答 2

9

您唯一需要添加到代码中的是show(hv.render(your_holoviews_plot)),如下所示:

import holoviews as hv
hv.extension('bokeh')
from bokeh.plotting import show

show(hv.render(your_holoviews_plot))

当您在 PyCharm(或任何其他 IDE)中运行脚本时,这将在浏览器中打开您的绘图。

它将散景设置为渲染器并使用 bokeh.plotting.show()在浏览器中打开绘图。
所以不需要去命令行等。

完整的工作示例代码:

# 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))
于 2019-11-13T15:55:36.047 回答
5

解决方案在: http ://holoviews.org/user_guide/Deploying_Bokeh_Apps.html

你需要这些代码行:

import holoviews.plotting.bokeh
....
layout=#whathever holoview you want to plot
...
doc = hv.renderer('bokeh').server_doc(layout)

然后转到您的命令提示符,cd 到正确的目录并运行: bokeh serve --show myscript.py

于 2017-08-03T14:52:52.280 回答