Holoview с боке не показывает сюжеты

Я пытаюсь создать среду, в которой я разрабатываю код Python с помощью PyCharm, в то же время создавая интерактивные диаграммы с использованием голографических изображений и боке.

Я выполнил шаги из Введение в Holoview, и он работает в блокноте Jupyter - диаграммы приятно интерактивны верно. Однако, когда я запускаю тот же код в консоли Python PyCharm, ни диаграммы, ни браузер не отображаются.

Напротив, когда я напрямую вызываю методы боке, как в этом примере, запускается браузер, и я может управлять диаграммами в интерактивном режиме. Я бы хотел добиться этого с помощью голографических изображений (+ боке).

Большое спасибо за вашу помощь заранее.

Мои библиотеки:

  • Python 3.4.5
  • holoviews 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

person tksmrch    schedule 25.07.2017    source источник


Ответы (2)


Решение находится в: 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)

Затем перейдите в командную строку, перейдите в нужный каталог и запустите: bokeh serve --show myscript.py

person Joris    schedule 03.08.2017

Единственное, что вам нужно добавить в свой код, - это 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))
person Sander van den Oord    schedule 13.11.2019