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