Сохранение панели и интерактивных диаграмм Altair в формате HTML

#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.