问题描述
我正在努力使用 altair 绘制我的 Pandas alpha vantage 数据,因为我无法按照我想要的方式获取数据。
这就是它来自我的 alpha-vantage 查询的方式:
这就是我现在的代码:
context = locals()
source = data[0]['1a. open (USD)']
print(source[0])
context["chart"] = alt.Chart(source).mark_area(
line={'color': 'black'},color=alt.Gradient(
gradient='linear',stops=[alt.GradientStop(color='white',offset=0),alt.GradientStop(color='black',offset=1)],x1=1,x2=1,y1=1,y2=0
)
).encode(
alt.X('date:T'),alt.Y('price:Q')
).interactive()
altair.utils.schemapi.SchemaValidationError: Invalid specification
altair.vegalite.v4.api.Chart->0,validating 'additionalProperties'
Additional properties are not allowed (Timestamp('2018-05-13 00:00:00'),Timestamp('2019-07-18
00:00:00'),Timestamp('2018-11-09 00:00:00'),Timestamp('2020-10-17 00:00:00'),Timestamp('2018-
07-05 00:00
----- lots more here -----
Timestamp('2020-05-02 00:00:00'),Timestamp('2018-05-08 00:00:00'),Timestamp('2018-10-05
00:00:00') were unexpected)
所以问题是如何将我的 Pandas 数据作为两个数组,一个用于时间戳,另一个用于结束数据值!所以我可以这样做:
data = pd.DataFrame({'x': ['A','B','C','D','E'],'y': [5,3,6,7,2]})
alt.Chart(data).mark_bar().encode(
x='x',y='y',)
谢谢!
解决方法
source
必须是 Pandas DataFrame;看来您正在传递一组时间戳。改为传递数据帧,您将不会看到此错误。
因为您没有提供有关如何生成 data
变量的完整示例,我无法提供更具体的建议。