我正在尝试使用Altair制作交互式图形。但是,当我构建函数时,没有错误消息,但也没有任何图。
下面是我的代码:
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是列表中包含的国家/地区的名称。我的数据范围是我数据框中的熊猫日期时间。
我还通过以下方式在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()
只有一个空白图表,但我使用日期范围和国家/地区填充符。
有什么建议吗? 谢谢!