#python #html #panel #altair
#python #HTML #панель #altair
Вопрос:
Я создал панель и интерактивную диаграмму Altair с помощью.
from bokeh.resources import INLINE, CDN
from vega_datasets import data
import panel as pn
import pandas as pd
import altair as alt
from altair import datum
cars = data.cars()
alt.renderers.enable('altair_viewer')
alt.data_transformers.enable('default')
pn.extension('vega')
options= cars['Origin'].unique().tolist()
hp_range_slider = pn.widgets.RangeSlider(
name='Range Slider', start=40, end=250, value=(60, 160), step=10)
country_ticker = pn.widgets.MultiSelect(name='MultiSelect', value=[options[0], options[1]],
options=options, size=8)
@pn.depends(country_ticker.param.value, hp_range_slider.param.value)
def get_plot(country_ticker, hp_range):
df=cars.copy()
start_hp = hp_range_slider.value[0]
end_hp = hp_range_slider.value[1]
mask = (df['Horsepower'] > start_hp) amp; (df['Horsepower'] <= end_hp) # create filter mask for the dataframe
df = df.loc[mask] # filter the dataframe
print(country_ticker)
print(start_hp,end_hp)
# create the Altair chart object
scatter = alt.Chart(df).mark_point().encode(
x='Horsepower:Q',
y='Miles_per_Gallon:Q',
color='Origin:N'
).transform_filter(
alt.FieldOneOfPredicate(field='Origin', oneOf=country_ticker)
)
return scatter
title = '## Horsepower Dashboard'
subtitle = 'This dashboard allows you to select a country and HP range .'
dashboard = pn.Row(
pn.Column(title, subtitle, country_ticker, hp_range_slider),
get_plot # draw chart function!
)
dashboard.servable()
dashboard.save("test_altair.html",embed=True,resources=INLINE)
dashboard.show()
Когда я запускаю панель мониторинга.команда show отображается отлично.
Но когда я сохраняю его как html, я не получаю диаграммы, только компоненты панели. Любая помощь в этом?
Ответ №1:
Для средства altair_viewer
визуализации требуется действующее ядро. Из altiar_viewer
README
Обратите внимание, что отображение на основе altair Viewer будет корректно функционировать только до тех пор, пока работает ядро, создавшее диаграммы, поскольку это зависит от фонового сервера, запущенного ядром.
Если вы хотите, чтобы диаграммы в сохраненном HTML отображались без ядра, вам необходимо использовать другой средство визуализации, например средство визуализации по умолчанию. Дополнительные сведения о средствах визуализации см. в разделе Отображение диаграмм Altair.