我正在尝试将Vaex与Altair一起使用,但在将 Vaex 数据帧传递给 Altair 时遇到了一些麻烦。
尝试制作简单的折线图时
alt.Chart(df)\
.mark_line()\
.encode(alt.X('x'), alt.Y('y1'))
我收到一条错误消息
[the] encoding field[s] is[are] 未指定类型;无法自动推断类型,因为数据未指定为 pandas.DataFrame。
但是如果我尝试指定它们
alt.Chart(df)\
.mark_line()\
.encode(alt.X('x:T'), alt.Y('y1:Q'))
我收到一条错误消息
altair.vegalite.v4.api.Chart->0,验证“附加属性”
不允许附加属性('y1'、'x'、'y2' 是意外的)
在我看来,将 Vaex 数据框链接到 Altair 存在一些问题,但我不知道如何解决它......
这里是完整的代码:
import altair as alt
import numpy as np
import vaex
import datetime
base = datetime.datetime.today()
dates = [base - datetime.timedelta(days=x) for x in range(10)]
y1 = np.sin(range(10))
y2 = np.cos(range(10))
df = vaex.from_arrays(x=dates, y1=y1, y2=y2)
alt.Chart(df)\
.mark_line()\
.encode(alt.X('x:T'), alt.Y('y1:Q')) #.encode(alt.X('x'), alt.Y('y1'))