是否淘汰 `to_html()`? 或者让它与 Vegafusion 兼容?
作者: joelostblom创建于 2024年4月7日更新于 2026年9月17日
标签bug
发生了什么情况?
我无意中混淆了 to_html() 和 save,并注意到在使用 to_html 并启用 vegafusion 数据转换器时,我遇到了以下错误:
ValueError: 当启用 "vegafusion" 数据转换器时,必须使用 format="vega" 方式调用 to_dict() 和 to_json() 图表方法。例如:
>>> chart.to_dict(format="vega")
>>> chart.to_json(format="vega")import altair as alt
import pandas as pd
alt.data_transformers.enable('vegafusion')
source = pd.DataFrame({
'a': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
'b': [28, 55, 43, 91, 81, 53, 19, 87, 52]
})
alt.Chart(source).mark_bar().encode(
x='a',
y='b'
).to_html()您希望发生什么情况呢?
而不是 硬编码 to_dict() 不带参数和 mode='vegalite',我们可以允许在 to_html() 方法中传递这些参数的参数。模式可以称为 mode,字典选项可以是 format 或 dict_kwds,类似于我们对 json_kwds 的处理。可以通过 embed_options 覆盖 mode,但我认为显式的参数会更清晰一些。
内容来源: vega/altair