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øj | Lav | Åben | Tæt | Bind | Adj Luk | |
---|---|---|---|---|---|---|
Dato | ||||||
2015-10-12 | 44,599998 | 43,054001 | 44,598000 | 43.116001 | 19181500,0 | 43.116001 |
2015-10-13 | 44,504002 | 42.226002 | 42,655998 | 43,849998 | 25857500,0 | 43,849998 |
2015-10-14 | 44,189999 | 43,085999 | 44,133999 | 43,375999 | 15522000,0 | 43,375999 |
2015-10-15 | 44.346001 | 42,740002 | 43,285999 | 44,262001 | 14221000,0 | 44,262001 |
2015-10-16 | 46,096001 | 44,574001 | 44,608002 | 45,402000 | 21672500,0 | 45,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.
Industriingeniør som gerne beskæftiger sig med optimering, simulation og matematisk modellering i R, SQL, VBA og Python
Leave a Reply