我正在努力用altair绘制我的熊猫阿尔法优势数据,因为我不能以我想要的方式获得数据。
这就是我的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',
)谢谢!
发布于 2021-01-07 02:01:23
source必须是pandas DataFrame;看起来您传递的是时间戳的元组。而是传递一个dataframe,您将不会看到此错误。
由于您没有包含有关如何生成data变量的完整示例,因此我无法提供更具体的建议。
https://stackoverflow.com/questions/65600686
复制相似问题