簡體   English   中英

Altair 圖表與 alpha-vantage pandas 數據

[英]Altair chart with alpha-vantage pandas data

我正在努力用 altair 繪制我的 pandas alpha vantage 數據,因為我無法按照我想要的方式獲取數據。

這就是它來自我的 alpha-vantage 查詢的方式:

alphavantagedata

這就是我的代碼現在的樣子:

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 數據作為兩個 arrays 獲取,一個用於時間戳,一個用於關閉數據值:所以我可以這樣做:

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; 看來您正在傳遞一個時間戳元組。 改為傳遞 dataframe,您將不會看到此錯誤。

因為您沒有包含data變量如何生成的完整示例,所以我無法提供更具體的建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM