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()
Hoch | Niedrig | Offen | Nahe | Volumen | Adj Schließen | |
---|---|---|---|---|---|---|
Datum | ||||||
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 |
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.
Wirtschaftsingenieur mit Interesse an Optimierung, Simulation und mathematischer Modellierung in R, SQL, VBA und Python
Leave a Reply