Altair i Python til visualisering af Tesla-aktier

I tidligere indlæg har jeg allerede introduceret seaborn og matplotlib .pyplot til visualisering i Python. I dette indlæg vil jeg introducere altair-modulet. Dette er et alternativt modul, der understøtter visualisering i Python.

Altair-modulet kan installeres med pip-installation via kommandoprompten.

Nedenfor importerer jeg altair-modulet sammen med pandas og pandas_datareader . Jeg vil bruge pandas_datareader til at læse aktiekursdata for Tesla. Jeg vil visualisere aktiekursudviklingen med et diagram lavet i altair. Men først forespørger jeg dataene fra Yahoo Finance og viser overskriften på den hentede dataramme:

# importer relevante moduler 
importer pandaer som pd 
importer altair som alt 
import pandas_datareader .data som webimport 
datetime 
# indlæst aktiekursdata for tesla for de sidste 5 år 
start = datetime.datetime(2015,10,11) 
end = datetime.datetime (2020,10,11) 
df = web.DataReader("TSLA","yahoo",start,end) 
# displayhoved for aktiekursdataramme 
df.head()
HøjLavÅbenTætBindAdj Luk
Dato
2015-10-1244,59999843,05400144,59800043.11600119181500,043.116001
2015-10-1344,50400242.22600242,65599843,84999825857500,043,849998
2015-10-1444,18999943,08599944,13399943,37599915522000,043,375999
2015-10-1544.34600142,74000243,28599944,26200114221000,044,262001
2015-10-1646,09600144,57400144,60800245,40200021672500,045,402000

I øjeblikket er datoerne rækkeindekser for datarammen. For at arbejde med altair er det bedre at tilføje dem som en separat kolonne med en specificeret kolonneoverskrift:

df["Datoer"] = df.indeks

Nu hvor jeg har mine data, kan jeg oprette et aktiekursdiagram med altair-modulet i Python:

# opret diagram med altair 
diagram = alt.Chart(df).mark_area().encode( 
    x="Dates", 
    y="Close" 
) 
# vis altair diagram 
diagram

Det var et meget grundlæggende diagram. Nedenfor opretter jeg et andet områdediagram med en farvegradient:

# create altair chart 
chart = alt.Chart(df).mark_area(line={'color':'darkgreen'},color=alt.Gradient( 
        gradient='linear', 
        stops=[alt.GradientStop(color='white) ', offset=0), 
               alt.GradientStop(color='darkgreen', offset=1)])).encode(x="Dates",y="Close") 
# display altair diagram 
chart

Jeg vil tilføje en titel til diagrammet. Jeg vil også ændre titlerne på x- og y-aksen. Det gør jeg i koden nedenfor:

# add chart title 
chart.title = "Daglige TSLA-aktie-lukningskurser [USD]" 
# juster x- og y-akseetiketter 
chart.encoding.x.title = "Tid" 
chart.encoding.y.title = "Daglig lukkekurs [USD ]" 
# vis ændret 
diagramdiagram

Lad os nu prøve at lave et lysestagediagram. En forklaring på aktieanalyse med lysestagediagrammer kan f.eks. findes her: https://diagrammm.com/candlestick_chart

# opret 
farvebetingelser color_conditions = alt.condition("datum.Åben <= datum.Luk", 
                                 alt.value("grøn"), 
                                 alt.value("red"))# build chart 
chart = alt.Chart(df) .encode(x = "Datoer") 
# set title of chart 
chart.title = "Lysestagediagram over TSLA aktiekurser" 
# sæt x-akse etiket for diagram 
chart.encoding.x.title = "Tid" 
# konstruer en regel markér ved hjælp af mark_rule()-metoden 
rules = chart.mark_rule().encode( 
    y = "Lav", 
    y2 = "Høj") 
# juster y-akse-etiket for regler 
rules.encoding.y.title = "Pris"
# konstruer søjler 
søjler = chart.mark_bar().encode(
    y="Åben", 
    y2="Luk",
    color = color_conditions) 
# visningsregler og søjler (begge baseret på de samme grundlæggende diagramregler 
+ søjler

I ovenstående lysestagediagram er altarstænger blevet placeret som et andet lag oven på altair regler.

Lad os lave nogle flere plotteeksempler ved at bruge aktiekursdataene for Tesla. I nedenstående kode opretter jeg et aktiekurslinjeplot for Teslas daglige aktielukningspriser:

# create line plot 
chart = alt.Chart(df).mark_line().encode(x="Dates",y="Close") 
# sæt titel- og 
akselabels chart.title = "Daglige TSLA-aktie-lukningskurser" 
diagram. encoding.x.title = "Tid" 
chart.encoding.y.title = "Pris [USD]" 
# display 
linjediagram

Når jeg opretter et diagram, kan jeg også angive nogle yderligere egenskaber som f.eks. diagrammets bredde:

# opret 
farvebetingelser color_conditions = alt.condition("datum.Åben <= datum.Luk", 
                                 alt.value("grøn"), 
                                 alt.value("red"))# build chart 
chart = alt.Chart(df) .encode(x = "Datoer").properties(width=800) 
# set title of chart 
chart.title = "Lysestagediagram over TSLA aktiekurser" 
# sæt x-akse etiket for diagram 
chart.encoding.x.title = "Tid" 
# konstruer et regelmærke ved hjælp af mark_rule()-metoden 
rules = chart.mark_rule().encode( 
    y = "Lav", 
    y2 = "Høj") 
# juster y-akse-etiket for regler 
rules.encoding.y.title = "Pris"
# konstruer barer 
søjler = chart.mark_bar().encode(
    y="Åbn",
    y2="Luk", 
    farve = farvebetingelser) 
# visningsregler og søjler (begge baseret på de samme grundlæggende diagramregler 
+ søjler

Dette fuldender min grundlæggende introduktion til altair-modulet i Python. For mere information anbefaler jeg fx at tjekke dokumentationen: https://altair-viz.github.io/

Du kan også tjekke mine andre indlæg om visualisering i Python og R, der dækker fx rumlig datavisualisering med Leaflet i R, geokodning og heatmapping med Folium og Leaflet i Python og 3D heatmapping med deckgl i R. Jeg skrev også flere tutorials om datavisualisering med Seaborn og Matplotlib .pyplot i Python. Jeg brugte f.eks . Matplotlib til at visualisere den effektive grænse for lastbiltransportaktier ved at anvende Markowitz porteføljeteori i kombination med monte-carlo simuleringer.

You May Also Like

Leave a Reply

Leave a Reply

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

This site uses Akismet to reduce spam. Learn how your comment data is processed.