. , . . [], — , . Python — Pandas Altair.
Altair , , Data Science, , ; Altair .
Pandas , Altair . Pandas , . , , Pandas .
. — . pandas-datareader. Google Colab Pandas.
import pandas as pd
from pandas_datareader import data
. , :
start = '2020-1-1'
end = '2020-12-31'
source = 'yahoo'
— :
apple = data.DataReader("AAPL", start=start ,end=end, data_source=source).reset_index()[["Date", "Close"]]
ibm = data.DataReader("IBM", start=start ,end=end, data_source=source).reset_index()[["Date", "Close"]]
microsoft = data.DataReader("MSFT", start=start ,end=end, data_source=source).reset_index()[["Date", "Close"]]
Apple, IBM Microsoft 2020 . . , , . , concat:
apple["Stock"] = "apple"
ibm["Stock"] = "ibm"
microsoft["Stock"] = "msft"
stocks["Month"] = stocks.Date.dt.month
stocks = pd.concat([apple, ibm, microsoft])
, . .
Altair
Altair — Python. , . Altair . Altair, . Altair, Altair 4 :
- :
alt.Chart(stocks).mark_line().encode(
x="Date",
y="Close",
color="Stock"
).properties(
height=300, width=500
)
. Pandas, URL, JSON CSV. (mark_circle, mark_line ).
encode Altair, . , , encode, . color, hue Seaborn. , properties .
Altair — , .
selection = alt.selection_multi(fields=["Stock"], bind="legend")
alt.Chart(stocks).mark_line().encode(
x="Date",
y="Close",
color="Stock",
opacity=alt.condition(selection, alt.value(1), alt.value(0.1))
).properties(
height=300, width=500
).add_selection(
selection
)
() , . . opacity, .
add_selection. , . . :
Altair . , , , . , , :
hover = alt.selection(
type="single", on="mouseover", fields=["Stock"], nearest=True
)
, , , .
3 . . — , , . , . , :
# line plot
lineplot = alt.Chart(stocks).mark_line().encode(
x="Date:T",
y="Close:Q",
color="Stock:N",
)
# nearest point
point = lineplot.mark_circle().encode(
opacity=alt.value(0)
).add_selection(hover)
# highlight
singleline = lineplot.mark_line().encode(
size=alt.condition(~hover, alt.value(0.5), alt.value(3))
)
, , :
point + singleline
, , . — .
Altair . , .
, - , . — . — Data Science, , , .