Erstellen Sie interaktive Daten-Dashboards mit Streamlit: Ein umfassendes Tutorial
Published on
In der Welt der Datenwissenschaft ist die Fähigkeit, Daten zu visualisieren und mit ihnen zu interagieren, von entscheidender Bedeutung. Hier kommt Streamlit ins Spiel. Streamlit ist eine Open-Source-Python-Bibliothek, mit der Sie benutzerdefinierte Web-Apps zur Datenexploration und -visualisierung erstellen können. In diesem Tutorial werden wir tief in die Welt von Streamlit eintauchen und lernen, interaktive Dashboards zu erstellen, Machine-Learning-Modelle bereitzustellen und mehr.
Haben Sie von diesem fantastischen Datenanalyse- und Datenauswertungstool gehört, das Ihre Streamlit-App in Tableau verwandelt?
PyGWalker (opens in a new tab) ist eine Python-Bibliothek, die Ihnen dabei hilft, eine Tableau-ähnliche Benutzeroberfläche problemlos in Ihre eigene Streamlit-App einzubetten.
Einführung in Streamlit
Was ist Streamlit?
Streamlit ist eine Open-Source-Python-Bibliothek, die es einfach macht, benutzerdefinierte Web-Apps für maschinelles Lernen und Datenwissenschaft zu erstellen. In einer Welt, in der Daten König sind, ist Streamlit die Königin, die die erforderlichen Tools bereitstellt, um Ihre Daten zum Leben zu erwecken.
Streamlits intuitive und benutzerfreundliche Oberfläche ermöglicht es Ihnen, Datenskripte schnell und einfach in freigabefähige Web-Apps umzuwandeln. Mit nur wenigen Codezeilen können Sie schöne, interaktive Dashboards und Datenvisualisierungen erstellen. Egal, ob Sie ein erfahrener Datenwissenschaftler sind oder ein Anfänger, der gerade seine ersten Schritte in den Datenpool macht, Streamlit bietet eine vielseitige Plattform, um Ihre Daten zu verstehen und zu präsentieren.
Die Vorteile der Verwendung von Streamlit für die Datenvisualisierung
Die Datenvisualisierung ist ein wichtiger Aspekt der Datenanalyse. Sie ermöglicht es uns, komplexe Datensätze zu verstehen, indem wir sie in einem grafischen, leicht verständlichen Format darstellen. Streamlit glänzt in diesem Bereich und bietet eine Reihe von Vorteilen:
-
Echtzeit-Visualisierung: Dank der Echtzeit-Fähigkeiten von Streamlit werden Ihre Dashboards sofort aktualisiert, wenn sich Ihre Daten ändern. Dies ist besonders nützlich für die Überwachung von Live-Datenfeeds oder die Verfolgung von KPIs.
-
Interaktive Dashboards: Mit Streamlit sind Ihre Dashboards keine statischen Bilder, sondern interaktive Web-Apps. Dies ermöglicht es den Benutzern, die Daten zu manipulieren, in bestimmte Bereiche hineinzuzoomen und wirklich in die Details einzutauchen.
-
Benutzerfreundlichkeit: Streamlit ist darauf ausgelegt, benutzerfreundlich zu sein. Sie müssen kein Webentwickler sein, um atemberaubende Dashboards zu erstellen. Wenn Sie Python-Code schreiben können, können Sie Streamlit verwenden.
-
Integration mit Python Data Science Stack: Streamlit arbeitet nahtlos mit beliebten Python-Bibliotheken wie Pandas, NumPy und Plotly zusammen und ist somit ein leistungsstarkes Werkzeug für den Werkzeugkasten jedes Datenwissenschaftlers.
Streamlits Rolle in Machine-Learning-Modellen
Streamlit ist nicht nur für die Datenvisualisierung. Es ist auch ein leistungsstarkes Werkzeug für maschinelles Lernen. Mit Streamlit können Sie schnell interaktive Web-Apps erstellen, um Ihre Machine-Learning-Modelle zu präsentieren. Dies kann besonders nützlich sein, um die Fähigkeiten Ihres Modells Stakeholdern zu demonstrieren oder zum Debuggen und Modelltuning.
Sie könnten zum Beispiel eine Streamlit-App erstellen, die Benutzereingaben akzeptiert, sie an Ihr Machine-Learning-Modell weitergibt und die Vorhersage in Echtzeit anzeigt. Oder Sie könnten eine App erstellen, die es Ihnen ermöglicht, die Parameter Ihres Modells anzupassen und zu sehen, wie sich dies auf die Ausgabe auswirkt. Die Möglichkeiten sind endlos.
Erstellen eines Dashboards mit Streamlit
Wie man ein Dashboard mit Streamlit erstellt
Das Erstellen eines Dashboards mit Streamlit ist ein einfacher Vorgang. Hier ist ein grundlegendes Beispiel, um Ihnen den Einstieg zu erleichtern:
import streamlit as st
import pandas as pd
# Daten laden
data = pd.read_csv('data.csv')
# Titel erstellen
st.title('Mein erstes Streamlit-Dashboard')
# Daten in einer Tabelle anzeigen
st.table(data)
In diesem Beispiel importieren wir zuerst die erforderlichen Bibliotheken. Anschließend laden wir unsere Daten mit Pandas. Als nächstes erstellen wir einen Titel für unser Dashboard mit der Funktion st.title()
. Schließlich zeigen wir unsere Daten in einer Tabelle mit der Funktion st.table()
an.
Echtzeit-Daten-Dashboard mit Streamlit
Eine der Schlüsselfunktionen von Streamlit ist seine Fähigkeit, Echtzeit-Dashboards zu erstellen. Dies ist besonders nützlich, wenn Sie mit Live-Datenfeeds arbeiten oder Änderungen in Ihren Daten im Laufe der Zeit überwachen müssen.
Um ein Echtzeit-Dashboard zu erstellen, können Sie die Funktion st.write()
von Streamlit in einer Schleife verwenden. Hier ist ein Beispiel:
import streamlit as st
import pandas as pd
import time
# Titel erstellen
st.title('Echtzeit-Daten-Dashboard')
# Leeres DataFrame initialisieren
data = pd.DataFrame()
# Daten alle Sekunde aktualisieren
for i in range(100):
# Neue Daten simulieren
new_data = pd.DataFrame({'value': [i]}, index=[time.time()])
# Neue Daten an vorhandene Daten anhängen
data = data.append(new_data)
# Daten anzeigen
st.write(data)
# 1 Sekunde warten, bevor aktualisiert wird
time.sleep(1)
In diesem Beispiel erstellen wir zuerst einen Titel für unser Dashboard. Anschließend initialisieren wir ein leeres DataFrame, um unsere Daten zu speichern. Als nächstes geben wir eine Schleife ein, die neue Daten simuliert, die alle Sekunde eintreffen. Wir fügen diese neuen Daten zu unseren vorhandenen Daten hinzu und zeigen sie mit der Funktion st.write()
an. Schließlich warten wir eine Sekunde, bevor die Daten erneut aktualisiert werden.
Interaktive Datenvisualisierung mit Streamlit
Auch interaktive Datenvisualisierungen können mit Streamlit erstellt werden. Dies kann mit der Funktion st.plotly_chart()
erfolgen, die Streamlit mit der Plotly-Bibliothek integriert.
Hier ist ein Beispiel, wie Sie ein interaktives Streudiagramm erstellen können:
import streamlit as st
import pandas as pd
Bitte geben Sie die deutsche Übersetzung für diese Markdown-Datei an. Wenn ein Frontmatter vorhanden ist, stellen Sie sicher, dass Sie den Sprachparameter auch in de übersetzen. Hier ist die Datei:
import plotly.express as px
# Daten laden
data = pd.read_csv('data.csv')
# Erstellen Sie ein Streudiagramm
fig = px.scatter(data, x='x', y='y')
# Diagramm anzeigen
st.plotly_chart(fig)
In diesem Beispiel laden wir zuerst unsere Daten. Anschließend erstellen wir ein Streudiagramm mit Plotly Express. Schließlich zeigen wir das Diagramm mit der Funktion st.plotly_chart()
an.
Dies ist nur die Spitze des Eisbergs, wenn es darum geht, was Sie mit Streamlit tun können. Mit etwas Kreativität und Python-Know-how können Sie atemberaubende, interaktive Dashboards erstellen, die Ihre Daten zum Leben erwecken.
Echtzeit-Datenvisualisierung mit Streamlit
Die Fähigkeit von Streamlit, Echtzeitdaten zu verarbeiten, ist eine seiner leistungsstärksten Funktionen. Dies ist besonders nützlich für Anwendungen, die eine kontinuierliche Überwachung oder Live-Updates erfordern. Sie könnten beispielsweise ein Streamlit-Dashboard erstellen, um IoT-Sensordaten in Echtzeit zu überwachen. Hier ist ein einfaches Beispiel:
import streamlit as st
import random
import time
st.title('Echtzeit-IoT-Sensordaten')
data = []
for _ in range(100):
data.append(random.randint(0, 100))
st.line_chart(data)
time.sleep(0.1)
In diesem Beispiel simulieren wir Echtzeit-IoT-Sensordaten, indem wir zufällige Zahlen generieren und das Liniendiagramm alle 0,1 Sekunden aktualisieren.
Interaktive Machine-Learning-Modelle mit Streamlit
Streamlits Interaktivität erstreckt sich auch auf Machine-Learning-Modelle. Sie können Dashboards erstellen, mit denen Benutzer Modellparameter anpassen und die Auswirkungen in Echtzeit sehen können. Dies kann ein leistungsstarkes Werkzeug sein, um zu verstehen, wie verschiedene Parameter die Vorhersagen eines Modells beeinflussen.
Angenommen, Sie haben beispielsweise ein Machine-Learning-Modell, das Kundenabwanderung basierend auf Merkmalen wie Kundenalter, Vertragsdauer und monatlichen Gebühren vorhersagt. Sie könnten eine Streamlit-App erstellen, die es Benutzern ermöglicht, diese Parameter anzupassen und die Vorhersagewahrscheinlichkeit der Abwanderung in Echtzeit zu sehen. Hier ist ein einfaches Beispiel:
import streamlit as st
from sklearn.ensemble import RandomForestClassifier
import numpy as np
st.title('Vorhersage der Kundenschwund')
# Laden Sie Ihr trainiertes Modell
model = RandomForestClassifier()
model.load('my_model.pkl')
# Benutzereingabe abrufen
alter = st.slider('Alter', 18, 100)
vertragsdauer = st.slider('Vertragsdauer (Monate)', 1, 72)
monatliche_kosten = st.slider('Monatliche Kosten', 20.0, 100.0)
# Vorhersage treffen
eingabedaten = np.array([[alter, vertragsdauer, monatliche_kosten]])
vorhersage = model.predict_proba(eingabedaten)
# Vorhersage anzeigen
st.write(f'Schwundwahrscheinlichkeit: {vorhersage[0][1]}')
In diesem Beispiel laden wir zuerst unser trainiertes Modell. Dann verwenden wir die slider
-Funktion von Streamlit, um die Benutzereingabe für das Alter, die Vertragsdauer und die monatlichen Kosten zu erhalten. Wir geben diese Eingabe an unser Modell weiter, um eine Vorhersage zu treffen, und schließlich zeigen wir die vorhergesagte Schwundwahrscheinlichkeit an.
IoT-Datenvisualisierung mit Streamlit
Mit dem Aufkommen des Internet of Things (IoT) gibt es einen zunehmenden Bedarf an Tools, die IoT-Daten visualisieren können. Streamlit eignet sich dank seiner Echtzeitfähigkeiten und seiner Benutzerfreundlichkeit sehr gut für diese Aufgabe.
Für dieses Beispiel nehmen wir an, dass wir eine CSV-Datei namens sensor_data.csv
haben, die Echtzeit-IoT-Sensordaten enthält. So können Sie diese Daten in Streamlit anzeigen:
import streamlit as st
import pandas as pd
import time
st.title('Echtzeit-IoT-Sensordaten')
# Daten laden
data = pd.read_csv('sensor_data.csv')
# Daten in Echtzeit anzeigen
for i in range(len(data)):
# Aktuellen Datensatz anzeigen
st.line_chart(data[:i+1])
# Eine kurze Wartezeit einlegen, bevor der nächste Datensatz angezeigt wird
time.sleep(0.1)
In diesem Beispiel laden wir zuerst die Sensordaten aus der CSV-Datei. Anschließend zeigen wir die Daten in Echtzeit an, indem wir nach und nach einen Datensatz nach dem anderen zum Liniendiagramm hinzufügen. Nachdem jeder Datensatz hinzugefügt wurde, warten wir eine kurze Zeit, bevor der nächste hinzugefügt wird. Dadurch entsteht der Effekt, dass die Daten in Echtzeit angezeigt werden.
Fazit
Streamlit ist ein leistungsstarkes Tool zur Erstellung interaktiver Daten-Dashboards. Egal, ob Sie Echtzeit-IoT-Daten visualisieren, ein Machine-Learning-Modell präsentieren oder einen Datensatz erkunden möchten, Streamlit bietet eine benutzerfreundliche und flexible Plattform dafür. Mit seiner auf Python basierenden Syntax und seinem breiten Funktionsumfang ist es kein Wunder, dass Streamlit eine beliebte Wahl für Datenwissenschaftler und Analysten ist. Diese Beispiele kratzen nur an der Oberfläche dessen, was mit Streamlit möglich ist, und ich ermutige Sie, seine Möglichkeiten weiter zu erforschen.
Haben Sie von diesem tollen Datenanalyse- und Datenvisualisierungstool gehört, das Ihre Streamlit-App in Tableau verwandelt?
PyGWalker (opens in a new tab) ist eine Python-Bibliothek, die es Ihnen ermöglicht, eine Tableau-ähnliche Benutzeroberfläche in Ihre Streamlit-App zu integrieren.
Häufig gestellte Fragen
Ist Streamlit gut für Dashboards?
Ja, Streamlit ist ein ausgezeichnetes Tool zur Erstellung interaktiver Daten-Dashboards. Es basiert auf Python, was es vielen Datenwissenschaftlern zugänglich macht, und bietet eine Vielzahl von Funktionen für Datenvisualisierung und Interaktivität.
Ist Streamlit besser als Flask?
Streamlit und Flask haben unterschiedliche Verwendungszwecke. Flask ist ein Allzweck-Webframework, während Streamlit speziell für die Erstellung von Daten-Dashboards entwickelt wurde. Wenn Sie ein Daten-Dashboard schnell und einfach erstellen möchten, ist Streamlit wahrscheinlich die bessere Wahl.
Was sind die Nachteile von Streamlit?
Streamlit ist ein leistungsstarkes Werkzeug, hat aber auch seine Nachteile. Zum einen ist es nicht so anpassungsfähig wie einige andere Dashboarding-Tools. Darüber hinaus eignet es sich zwar hervorragend für die Erstellung einfacher eigenständiger Apps, ist aber möglicherweise nicht die beste Wahl für komplexere Webanwendungen.
Warum ist Dash besser als Streamlit? Ob Dash besser ist als Streamlit, hängt von Ihren spezifischen Anforderungen ab. Dash, auch eine Python-Bibliothek zur Erstellung interaktiver Webanwendungen, bietet mehr Anpassungsmöglichkeiten als Streamlit. Streamlit wird jedoch oft für seine Einfachheit und Benutzerfreundlichkeit gelobt, was es zu einer besseren Wahl für schnelles Prototyping und einfache Dashboards machen kann.