Использование Альтаира для интерактивного сюжета - PullRequest
0 голосов
/ 08 апреля 2020

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

Ниже мой код:

date_range_slider = pn.widgets.DateRangeSlider(name = 'Date',
    start = df['date'].min(), end = df['date'].max())

@pn.depends(c1.param.value, c2.param.value, date_range_slider.param.value)
def plots(c1, c2, date_range):

    #Data selection
    df = raw
    df['date'] = pd.to_datetime(df['date'], dayfirst = True)    
    df['daily_cases'] = df.groupby(['country'])['cases'].diff(1).fillna(df['cases']) 
    df = df.loc[(df['date'] >= date_range_slider.value[0]) & (df['date'] <= date_range_slider.value[1])]

    #Plotting
    graph = alt.Chart(df).mark_line().encode(alt.X('cases', scale = alt.Scale(type = 'log')),
                                             alt.Y('daily_cases', scale = alt.Scale(type = 'log'))).transform_filter(
        (datum.symbol == c1) & (datum.symbol == c2))
    return graph

Мои c1 и c2 - это название страны, содержащейся в списках. Мой диапазон данных pandas datetime в моем фрейме данных.

Я также включаю функцию отображения в блокноте jupyter как:

alt.renderers.enable('default')
pn.extension('vega')
alt.data_transformers.disable_max_rows()

Однако, когда я запускаю

dashboard = pn.Row(pn.Column(c1, c2, date_range_slider), plots)
dashboard.servable()

Есть только пустой график, но я использую диапазон дат и страну-заполнитель.

Есть предложения? Спасибо!

...