我正在尝试创建一个环境,用PyCharm开发Python代码,同时使用holoviews和bokeh创建交互式图表。
我按照Holoview Introduction中的步骤进行操作,它适用于Jupyter笔记本 - 图表确实很好地互动。但是,当我在PyCharm的Python控制台中运行相同的代码时,没有显示图表或浏览器。
相比之下,当我直接调用bokeh的方法时,如this example,浏览器启动,我可以交互操作图表。我想用holoviews(+ bokeh)来实现这一点。
非常感谢您的帮助。
我的图书馆:
答案 0 :(得分:3)
解决方案是: 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
答案 1 :(得分:0)
您唯一需要添加到代码中的是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作为渲染器,并使用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))