Altair in Python: Visualisierung der Tesla-Aktie

In früheren Beiträgen habe ich bereits Seaborn und Matplotlib .pyplot zur Visualisierung in Python vorgestellt. In diesem Beitrag möchte ich das Altair-Modul vorstellen. Dies ist ein alternatives Modul, das die Visualisierung in Python unterstützt.

Das Altair-Modul kann mit pip install über die Eingabeaufforderung installiert werden.

Unten importiere ich das Altair-Modul zusammen mit pandas und pandas_datareader . Ich werde pandas_datareader verwenden , um Aktienkursdaten für Tesla einzulesen. Ich werde die Aktienkursentwicklung mit einem in Altair erstellten Chart visualisieren. Aber zuerst frage ich die Daten von Yahoo Finance ab und zeige den Header des abgerufenen Datenrahmens an:

# Relevante Module importieren
pandas als pd importieren
altair als alt importieren
pandas_datareader .data als Web importieren
datetime importieren
# Aktienkursdaten für Tesla für die letzten 5 Jahre einlesen
start = datetime.datetime(2015,10,11)
Ende = datetime.datetime(2020,10,11)
df = web.DataReader("TSLA","yahoo",Start,Ende)
# Header des Aktienkurs-Datenrahmens anzeigen
df.head()
HochNiedrigOffenNaheVolumenAdj Schließen
Datum
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

Derzeit sind die Daten Zeilenindizes des Datenrahmens. Für die Arbeit mit Altair ist es besser, sie als separate Spalte mit einer bestimmten Spaltenüberschrift hinzuzufügen:

df["Daten"] = df.index

Jetzt, da ich meine Daten habe, kann ich mit dem Altair-Modul in Python ein Aktienkursdiagramm erstellen:

# Diagramm mit Altair erstellen
chart = alt.Chart(df).mark_area().encode(
    x="Daten",
    y="Schließen"
)
# Altair-Karte anzeigen
Diagramm

Das war ein sehr einfaches Diagramm. Unten erstelle ich ein weiteres Flächendiagramm mit einem Farbverlauf:

# Erstellen Sie ein Altair-Diagramm
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")
# Altair-Karte anzeigen
Diagramm

Ich möchte dem Diagramm einen Titel hinzufügen. Ich möchte auch die Titel der x- und y-Achse ändern. Ich mache das im folgenden Code:

# Diagrammtitel hinzufügen
chart.title = "Tägliche TSLA-Aktienschlusskurse [USD]"
# x- und y-Achsenbeschriftungen anpassen
chart.encoding.x.title = "Zeit"
chart.encoding.y.title = "Tagesschlusskurs [USD]"
# Geändertes Diagramm anzeigen
Diagramm

Versuchen wir nun, ein Kerzendiagramm zu erstellen. Eine Erläuterung zur Aktienanalyse mit Candlestick-Diagrammen finden Sie zB hier: https://diagrammm.com/candlestick_chart

# Farbbedingungen erstellen
color_conditions = alt.condition("datum.Open <= datum.Close",
                                 alt.value("grün"),
                                 alt.value("red"))# Diagramm erstellen
chart = alt.Chart(df).encode(x = "Daten")
# Titel des Diagramms festlegen
chart.title = "Candle-Stick-Diagramm der TSLA-Aktienkurse"
# X-Achsenbeschriftung für Diagramm festlegen
chart.encoding.x.title = "Zeit"
# Erstellen Sie eine Regelmarkierung mit der Methode mark_rule()
Regeln = chart.mark_rule().encode(
    y = "Niedrig",
    y2 = "Hoch")
# Y-Achsenbeschriftung für Regeln anpassen
rules.encoding.y.title = "Preis"
# Balken konstruieren
Balken = chart.mark_bar().encode(
    y="Öffnen",
    y2="Schließen",
    Farbe = Farbbedingungen)
# Anzeigeregeln und Balken (beide basieren auf demselben Grunddiagramm
Regeln + Balken

Im obigen Candle-Stick-Diagramm wurden Altair-Balken als zweite Ebene über den Altair-Regeln platziert.

Lassen Sie uns anhand der Aktienkursdaten für Tesla einige weitere Plotbeispiele erstellen. Im folgenden Code erstelle ich ein Aktienkursliniendiagramm für die täglichen Schlusskurse von Tesla:

# Liniendiagramm erstellen
chart = alt.Chart(df).mark_line().encode(x="Dates",y="Close")
# Titel und Achsenbeschriftungen festlegen
chart.title = "Tägliche TSLA-Aktienschlusskurse"
chart.encoding.x.title = "Zeit"
chart.encoding.y.title = "Preis [USD]"
# Liniendiagramm anzeigen
Diagramm

Beim Erstellen eines Diagramms kann ich auch einige zusätzliche Eigenschaften angeben, wie z. B. die Breite des Diagramms:

# Farbbedingungen erstellen
color_conditions = alt.condition("datum.Open <= datum.Close",
                                 alt.value("grün"),
                                 alt.value("red"))# Diagramm erstellen
chart = alt.Chart(df).encode(x = "Daten").properties(width=800)
# Titel des Diagramms festlegen
chart.title = "Candle-Stick-Diagramm der TSLA-Aktienkurse"
# X-Achsenbeschriftung für Diagramm festlegen
chart.encoding.x.title = "Zeit"
# Erstellen Sie eine Regelmarkierung mit der Methode mark_rule()
Regeln = chart.mark_rule().encode(
    y = "Niedrig",
    y2 = "Hoch")
# Y-Achsenbeschriftung für Regeln anpassen
rules.encoding.y.title = "Preis"
# Balken konstruieren
Balken = chart.mark_bar().encode(
    y="Öffnen",
    y2="Schließen",
    Farbe = Farbbedingungen)
# Anzeigeregeln und Balken (beide basieren auf demselben Grunddiagramm
Regeln + Balken

Damit ist meine grundlegende Einführung in das Altair-Modul in Python abgeschlossen. Für weitere Informationen empfehle ich zB, die Dokumentation zu lesen: https://altair-viz.github.io/

Sie können auch meine anderen Beiträge zur Visualisierung in Python und R lesen, die z. B. räumliche Datenvisualisierung mit Leaflet in R, Geocodierung und Heatmapping mit Folium und Leaflet in Python und 3D-Heatmapping mit deckgl in R behandeln. Ich habe auch mehrere Tutorials zur Datenvisualisierung mit geschrieben Seaborn und Matplotlib .pyplot in Python. Ich habe zB Matplotlib verwendet , um die Effizienzgrenze von LKW-Aktien zu visualisieren, indem ich die Markowitz-Portfoliotheorie in Kombination mit Monte-Carlo-Simulationen anwende.

You May Also Like

Leave a Reply

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.