python - 将 Holoviews 保存为交互式 html
问题描述
我有一个 Holoviews 代码,旨在将输出保存为 .html。以下工作正常,即生成 html 并渲染标签,但过滤器不起作用。我究竟做错了什么?
def load_data(country, lan_name, **kwargs):
df = subset
if country != 'ALL':
df = df[(df.country == country)]
if lan_name != 'ALL':
df = df[(df.lan_name == lan_name)]
table = format_chars(df['term'], df['hex'])
#hv.Table(df, ['country', 'lan_name'], [], label='Data Table')
layout = (table).opts(
opts.Layout(merge_tools=False),
opts.Div(width=700, height=400),
)
return layout
methods = ['ALL'] + sorted(list(subset['country'].unique()))
models = ['ALL'] + sorted(list(subset['lan_name'].unique()))
dmap = hv.DynamicMap(load_data, kdims=['country', 'lan_name']).redim.values(country=methods, lan_name=models)
hv.save(dmap, 'output.html', backend='bokeh')
解决方案
通过“过滤器”,听起来您的意思是沿着country
和lan_name
尺寸选择的小部件。每次您选择小部件的新值时,DynamicMap 都会调用您提供的 Python 函数(load_data
此处)来计算显示(这就是使其“动态”的原因)。当您拥有静态 HTML 文件时,没有可用的 Python 进程,因此在这种情况下,显示将永远不会更新。
要使静态 HTML 文件中的某些有限功能可用,您可以将 DynamicMap 转换为 HoloMap,其中包含小部件值的某些特定组合的所有显示项目 ( http://holoviews.org/user_guide/Live_Data.html#Converting-从-DynamicMap 到-HoloMap )。生成的参数空间很快就会变得非常大,因此您通常需要选择一个可行的值子集,以使其成为一个实用的选项。
推荐阅读
- angular - TypeScript 编译中缺少 ts 文件
- javascript - 我正在尝试创建一个切换按钮来打开或关闭一个人的可用性状态并更新数据库中的当前状态
- qt - QML 地图缓存存储在 ubuntu/windows 哪里?
- javascript - 模板构建器网站如何保存用户编辑,然后将其显示给其他用户?
- json - 在 CMD 上的 JQ 中使用双引号(windows)
- elasticsearch - elasticsearch = 无法分配,因为不允许分配给任何节点
- reactjs - 这个更新状态是否正确?
- typescript - 某种类型映射来确定一种类型与另一种类型?
- spring - 当spring config服务器关闭且GIT处于维护状态时,spring config客户端在初始启动时
- react-native - 在 Expo 的 FlatList 中搜索