Daten interaktiv visualisieren mit Python und Plotly

Interaktive Datenvisualisierung in Python mit Plotly

Hier lernt ihr am Beispiel aktueller COVID-19-Daten, wie man als Digital-Marketer leicht Visualisierungen mit Python und Plotly erstellen kann. Das Beste daran: Plotly-Charts sind interaktiv, so dass man diese auf Websites einbinden und interessante Erkenntnisse für sich und seine Besucher schaffen kann.

Inhalt:

Beispiel: So sieht ein Chart mit Python und Plotly aus

Python gilt als eine der beliebtesten Programmiersprachen, wenn es um Big Data und Datenanalysen geht. Plotly macht durch eine hohe Dynamik und Anpassungsfähigkeit auf sich aufmerksam und hat sich bis heute zu einer der beliebtesten Python-Visualisierung-Bibliotheken entwickelt. Plotly viele Vorteile: Die Charts sind interaktiv. Das heißt Heat Maps, Boxplots oder auch 3D-Charts sind möglich.

Im Beispiel sehen wir das Ergebnis unserer Visualisierung: Täglich aktualisierte Verlaufskurven der Corona-Fälle.

Tipp: Öffnet mit dem “Edit Chart”-Button mal das plotly-Chart-Studio, dies ermöglicht ganz eigene Analysen der Daten.

So erstellt man eine Plotly-Datenvisualisierung mit Python

Überzeugende und  interaktive Charts können in wenigen Schritten erstellt werden.

Schritt 0: Python einrichten

Falls ihr noch kein Python habt, hilft euch diese Anleitung zur Installation von Anaconda weiter. Im Wesentlichen ladet ihr einfach ‘Anaconda’ herunter, bekommt damit Python und sogar zusätzlich noch weitere Code-Editoren umsonst. Dieses Beispiel wurde in Jupyter-Notebook geschrieben.

Schritt 1: Benötigte Daten laden

Wir werden uns hier an den Daten eines Github-nline-Verzeichnis bedienen, welches die Daten zu COVID-19 täglich updatet.

Als Erstes müssen wir die benötigten Libraries importieren. An dieser Stelle greifen wir auf Pandas und Plotly zu, um unsere Daten zu visualisieren.

Nun werden die Daten in einen sogenannten Dataframe aus der Standard-Analyse-Library “Pandas” in unsere Programmierumgebung geladen. Ein Dataframe ermöglicht es, Daten komfortabel über diverse Datenquellen zu laden und so anzupassen wie man diese braucht. Als nächstes speichern wir die Daten aus dem Verzeichnis in den Dataframe df.

##Block 1
# Laden der benötigten Libraries
import pandas as pd
import plotly.graph_objects as go

# Import der Daten 
df = pd.read_csv('https://raw.githubusercontent.com/datasets/covid-19/master/data/countries-aggregated.csv')

Schritt 2: Vorbereiten der Daten für die Visualisierung

Um den Verlauf von COVID-19 in Deutschland etwas genauer unter die Lupe nehmen zu können, betrachten wir nur die Einträge die „Germany“ in der Spalte „Country“ aufweisen und speichern diese Ansicht im Dataframe covidDE.

Aus dieser sollen dann weitere Dataframes entstehen, die Informationen beinhalten, die wir später abbilden wollen. In diesem Fall speichern wir die Daten über die bestätigten Fälle, Fälle, die die Krankheit überwunden haben und Todesfälle. Wir speichern ebenfalls Datum-Informationen, da wir schließlich die zeitliche Entwicklung darstellen wollen. Dieser Schritt erleichtert uns die Visualisierung der Daten im Nachhinein.

## Block 2
# Vorbereiten der Daten für die Auswertung im Graphen
covidDE = df[df['Country'].str.contains('Germany')]

#Selektieren der Daten für die Visualisierung 
datum = covidDE['Date']
bestätigt = covidDE['Confirmed']
wiedergesund = covidDE['Recovered']
todesfälle= covidDE['Deaths']

Schritt 3: Erstellen der interaktiven Charts

Hierzu erstellen wir zuerst unser Figure-Objekt fig, auf dem wir durch die Funktion add_trace() verschiedene Graphen abbilden können. Als Parameter werden dann Daten für die Werte in der X-Achse als auch der Y-Achse übergeben. Anschließend lassen sich die Graphen beliebig anpassen. Zu beachten ist jedoch, dass jeder einzelne Graph dem Figure-Objekt hinzugefügt werden muss.

## Block 3
# Erstellen der Charts
fig = go.Figure()

fig.add_trace(
    go.Scatter( x=datum, y=bestätigt, name='bestätigt',
               #Aussehen des Graphen bestimmen
               mode='lines',
        # Setzen der Farbe und Graphenbreite   
        line=dict(color='rgb(49,130,189)', width=3),    
    ))

fig.add_trace(
    go.Scatter( x=datum, y=wiedergesund, 
               mode='lines', name='wieder gesund',
        line=dict( color='rgb(49, 189, 82)', width=3)
    ))

fig.add_trace(
    go.Scatter(x=datum,y=todesfälle,
               mode='lines',name='Todesfälle',
        line=dict(color='rgb(189, 49, 84)', width=3)
    ))

Um das ganze Bild noch abzurunden, kann das Layout angepasst werden. Neben dem Titel und den Achsenbeschriftungen gibt es unzählige Möglichkeiten Graphen und Diagramme nach seinen persönlichen Vorlieben zu adaptieren.

## Block 4 
# Layout erstellen
fig.update_layout(
    #Titel
    title="Entwicklung von COVID-19 in Deutschland",
    #Achsenbeschriftungen
    yaxis_title="COVID19-Fälle in Deutschland",
    xaxis_title="Datum",
    
    #Setzen eines Hovertools 
    hovermode="x unified",
    #Hintergrundfarbe
    plot_bgcolor='rgb(242,242,242)' ,

    #Anpassen der Größe des Graphen    
    autosize=False,
    width=610,
    height=450,  
)
   
#Abbilden des Graphen    
fig.show()

Für die Visualisierung des Graphen muss nun nur noch die show()-Anweisung aufgerufen werden. Der erste interaktive Graph in Python erscheint.

Ergebnis: Interaktiver Chart mit Python und Plotly

Jetzt sieht man das Ergebnis: Es kann in den Chart hineingezoomt werden und einzelne Graphen können ein- und ausgeblendet werden. Die genauen Daten werden zudem angezeigt, indem man mit der Maus über den Graphen fährt.

Fazit: Interaktive Python-Charts sind schnell und leicht erstellt

Nun wisst ihr, wie man in wenigen Schritten, mit Hilfe des COVID-19 Datensatzes und Plotly, dynamische Graphen in Python erstellt. Jetzt könnt ihr eure gewonnenen Fähigkeiten in die nächste Big Data Analyse einfließen lassen.

Für Inspirationen haben wir 2 Links rausgesucht, die veranschaulichen, wie mächtig Plotly wirklich ist. Möglichkeiten Daten zu visualisieren sind nahezu grenzenlos.

Ich hoffe, ich konnte euch einige Anreize zum Thema Datenvisualisierung geben. Es ist einfach und bietet deutliche Vorteile speziell auch für Marketer, denn Leser und Nutzer können wichtige Infos direkt verstehen. Inhalte mit Grafiken (insbesondere interaktive) werden zudem viel häufiger im Web geteilt, so dass man eine höhere Reichweite erzielen kann.

Fällt euch in eurem Unternehmen ein Thema ein, dass ihr visualisieren wollt?

Probiert es aus, ihr werdet merken wie einfach es ist.

Hai Do Le

Hai Do Le arbeitet bei der mediaworx berlin AG im Bereich Data Science und Datenanalyse im Performance Marketing. Er beschäftigt sich dort mit den marketingrelevanten Themen Trendanalyse, Churn Prediction, Kundensegementierung und Data Engineering.

E-Mail
Artikel teilen

Kontakt