|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
ไธๆญๅทๆฐๆฐๆฎๅพ่กจ |
|
https://blog.csdn.net/qq_42761569/article/details/123418493 |
|
http://cw.hubwiz.com/card/c/streamlit-manual/1/6/13/ |
|
""" |
|
import altair as alt |
|
|
|
|
|
def get_chart(data): |
|
|
|
hover = alt.selection_single( |
|
fields=["date"], |
|
nearest=True, |
|
on="mouseover", |
|
empty="none", |
|
) |
|
|
|
lines = ( |
|
alt.Chart(data, title="Evolution of stock prices") |
|
.mark_line() |
|
.encode( |
|
x="date", |
|
y="price", |
|
color="symbol", |
|
strokeDash="symbol", |
|
) |
|
) |
|
|
|
|
|
points = lines.transform_filter(hover).mark_circle(size=65) |
|
|
|
|
|
tooltips = ( |
|
alt.Chart(data) |
|
.mark_rule() |
|
.encode( |
|
x="date", |
|
y="price", |
|
opacity=alt.condition(hover, alt.value(0.3), alt.value(0)), |
|
tooltip=[ |
|
alt.Tooltip("date", title="Date"), |
|
alt.Tooltip("price", title="Price (USD)"), |
|
], |
|
) |
|
.add_selection(hover) |
|
) |
|
|
|
return (lines + points + tooltips).interactive() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|