Skip to content

Streamlit und Plotly: Interaktive Datenvisualisierung ganz einfach

In der Welt der Datenwissenschaft spielt die Visualisierung eine entscheidende Rolle bei der Erfassung komplexer Datensätze und der Extraktion sinnvoller Erkenntnisse. Zwei leistungsstarke Tools, die dieses Feld revolutioniert haben, sind Streamlit und Plotly. Dieser Artikel soll einen umfassenden Leitfaden bieten, wie man diese Tools zusammen verwendet, um interaktive Visualisierungen und Dashboards zu erstellen. Ob Anfänger oder erfahrener Entwickler, hier finden Sie alles, was Sie brauchen, um mit Streamlit und Plotly zu beginnen.

Einführung in Streamlit und Plotly

Streamlit ist ein Open-Source-Python-Framework, das Entwicklern ermöglicht, interaktive Webanwendungen einfach zu erstellen. Es wurde entwickelt, um Datenwissenschaftler und Maschinenlerningenieure dabei zu unterstützen, Skripte in wenigen Codezeilen in gemeinsam nutzbare Web-Apps umzuwandeln. Streamlits Einfachheit und Flexibilität haben es zu einer beliebten Wahl unter Datenprofis gemacht.

Plotly hingegen ist eine vielseitige Bibliothek, die die Erstellung schöner und interaktiver Diagramme ermöglicht. Sie unterstützt über 40 einzigartige Diagrammtypen, die eine Vielzahl von statistischen, finanziellen, geografischen, wissenschaftlichen und dreidimensionalen Anwendungsfällen abdecken. Die Interaktivität von Plotly ermöglicht es den Benutzern, in die Visualisierungen zu zoomen, zu navigieren und zu bohren, was die Datenexploration intuitiv und informativ macht.

Wenn Streamlit und Plotly gemeinsam genutzt werden, bilden sie eine leistungsstarke Kombination, die Entwicklern ermöglicht, interaktive Dashboards mit komplexen Visualisierungen mit relativ geringem Aufwand zu erstellen.

Alternative zur Verwendung von Plotly in Streamlit: Verwenden Sie PyGWalker:

Obwohl Plotly ein leistungsstarkes Tool ist, ist es nicht die einzige Option für die Datenvisualisierung in Python. PyGWalker (opens in a new tab) ist ein weiteres großartiges Tool, das als Alternative zu Streamlit AgGrid Wunder wirkt.

PyGWalker + Streamlit Online-Demo (opens in a new tab)

PyGWalker (opens in a new tab) ist eine Python-Bibliothek, die es Ihnen ermöglicht, eine an Tableau erinnernde Benutzeroberfläche nahtlos in Ihre eigene Streamlit-App einzubetten.

Schauen Sie sich dieses erstaunliche Video an, das von Sven von Coding ist Fun (opens in a new tab) erstellt wurde und die detaillierten Schritte für die Stärkung Ihrer Streamlit-App mit dieser leistungsstarken Datenvisualisierungs-Python-Bibliothek zeigt!


Besonderer Dank an Sven und seine großartige Beitrag (opens in a new tab) an die PyGWalker-Community!

Zusätzlich können Sie auch diese Ressourcen überprüfen:

Visualisieren von Daten in Streamlit mit PyGWalker (opens in a new tab)

Erstellen interaktiver Visualisierungen mit Streamlit und Plotly

Die Erstellung interaktiver Visualisierungen mit Streamlit und Plotly ist ein unkomplizierter Prozess. Der erste Schritt besteht darin, die erforderlichen Bibliotheken in Ihr Python-Skript zu importieren. Hier ist ein Beispiel:

import streamlit as st
import plotly.express as px

Anschließend können Sie eine Plotly-Figur erstellen und sie in Ihrer Streamlit-App anzeigen. Erstellen wir zum Beispiel ein einfaches Balkendiagramm mit Plotly und zeigen es in Streamlit an:

## Erstellen eines Beispieldatensatzes
df = pd.DataFrame({
   'Obst': ['Äpfel', 'Orangen', 'Bananen', 'Äpfel', 'Orangen', 'Bananen'],
   'Menge': [4, 1, 2, 2, 4, 5],
   'Stadt': ['SF', 'SF', 'SF', 'Montreal', 'Montreal', 'Montreal']
})
 
## Erstellen eines Balkendiagramms mit Plotly
fig = px.bar(df, x='Obst', y='Menge', color='Stadt', barmode='group')
 
## Die Abbildung in Streamlit anzeigen
st.plotly_chart(fig)

In diesem Beispiel wird px.bar verwendet, um ein Balkendiagramm zu erstellen, und st.plotly_chart wird verwendet, um das Diagramm in der Streamlit-App anzuzeigen. Das Ergebnis ist ein interaktives Balkendiagramm, über das Benutzer schweben können, um Datenwerte zu sehen, herein- und herauszoomen und sogar als statisches Bild herunterladen können.

Fortgeschrittene Streamlit- und Plotly-Techniken

Das Erstellen grundlegender interaktiver Visualisierungen mit Streamlit und Plotly ist einfach, aber diese Tools bieten auch fortgeschrittene Funktionen, die komplexere und individuelle Visualisierungen ermöglichen.

Eine solche Funktion besteht darin, Plotly-Figuren in Streamlit zu aktualisieren. Dies kann mit den Methoden update_layout und update_traces in Plotly durchgeführt werden. Zum Beispiel können Sie das Layout einer Figur aktualisieren, um ihren Titel, die Achsenbeschriftungen und mehr zu ändern:

fig.update_layout(
    title='Neuer Titel',
    xaxis_title='Neuer X-Achsentitel',
    yaxis_title='Neuer Y-Achsentitel',
)

Ebenso können Sie die Traces einer Figur aktualisieren, um die Eigenschaften der dargestellten Daten zu ändern, wie z.B. die Farbe des Markers:

fig.update_traces(marker_color='rgb(158,202,225)')

Eine weitere fortgeschrittene Funktion besteht darin, Größenprobleme mit Plotly-Diagrammen in Streamlit zu beheben. Manchmal passt ein Plotly-Diagramm möglicherweise nicht gut in das Layout einer Streamlit-App und wird abgeschnitten oder überlappt andere Elemente. Dies kann durch Anpassung der height- und width-Parameter der Funktion st.plotly_chart behoben werden:

```python
st.plotly_chart(fig, use_container_width=True)
 
In diesem Beispiel sorgt `use_container_width=True` dafür, dass das Diagramm die gesamte Breite der Hauptspalte der Streamlit-App einnimmt und somit gut in das Layout passt.
 
## Erstellen eines Streamlit Plotly-Dashboards
 
Das Erstellen eines Dashboards mit Streamlit und Plotly beinhaltet das Kombinieren mehrerer interaktiver Visualisierungen und Steuerelemente zu einer einzigen App. Die Steuerelemente wie Schieberegler, Kontrollkästchen und Auswahlfelder ermöglichen es Benutzern, mit den Visualisierungen zu interagieren und sie in Echtzeit zu aktualisieren.
 
Hier ist ein einfaches Beispiel für ein Streamlit Plotly-Dashboard:
 
```python
import streamlit as st
import plotly.express as px
import pandas as pd
 
## Daten laden
df = pd.read_csv('data.csv')
 
## Hinzufügen eines Auswahlfelds für den Diagrammtyp
chart_type = st.selectbox('Wählen Sie einen Diagrammtyp aus', ['Balken', 'Linie'])
 
## Erstellen des Diagramms
if chart_type == 'Balken':
    fig = px.bar(df, x='Obst', y='Menge', color='Stadt', barmode='group')
elif chart_type == 'Linie':
    fig = px.line(df, x='Obst', y='Menge', color='Stadt')
 
## Diagramm anzeigen
st.plotly_chart(fig, use_container_width=True)

In diesem Beispiel wird mit st.selectbox ein Auswahlfeld zur Streamlit-App hinzugefügt. Der ausgewählte Wert wird verwendet, um den Diagrammtyp mit Plotly zu bestimmen. Das Diagramm wird dann mit st.plotly_chart in der App angezeigt.

Das Erstellen eines Streamlit Plotly-Dashboards kann so einfach oder so komplex sein wie erforderlich, je nach den Anforderungen Ihres Datensichtprojekts. Mit der Flexibilität und Leistungsfähigkeit von Streamlit und Plotly sind die Möglichkeiten grenzenlos.

Fazit: Die Power von Streamlit und Plotly für die Datenvisualisierung

Streamlit und Plotly bilden zusammen eine leistungsstarke Kombination für die Erstellung interaktiver Datenvisualisierungen und Dashboards. Streamlits Einfachheit und Flexibilität machen es zu einem ausgezeichneten Werkzeug für den Bau von Web-Apps, während Plotlys breites Spektrum an Diagrammtypen und Interaktivitätsfunktionen es zu einem vielseitigen Werkzeug für die Datenvisualisierung macht.

Die Integration von Streamlit und Plotly eröffnet Data Scientists und Entwicklern eine Welt der Möglichkeiten. Von der Erstellung einfacher Balkendiagramme bis hin zum Aufbau komplexer Dashboards mit mehreren interaktiven Visualisierungen bieten diese Tools die erforderlichen Fähigkeiten, um Daten in Erkenntnisse umzuwandeln.

Da Daten eine immer wichtigere Rolle in unserer Welt spielen, werden sich Tools wie Streamlit und Plotly weiterentwickeln und verbessern. Durch die fortlaufende Aktualisierung dieser Tools und das Erlernen ihrer effektiven Anwendung können Sie Ihre Datenvisualisierungsfähigkeiten weiterentwickeln und aussagekräftigere und aussagekräftigere Visualisierungen erstellen.

Haben Sie von diesem großartigen Tool für Datenanalyse und Datenvisualisierung gehört, das Ihre Streamlit-App in eine Tableau-ähnliche UI umwandelt?

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.

PyGWalker für Datenvisualisierung in Streamlit (opens in a new tab)

FAQs

1. Wie kann ich ein interaktives Plotly-Diagramm in Streamlit anzeigen?

Sie können ein interaktives Plotly-Diagramm in Streamlit anzeigen, indem Sie die Funktion st.plotly_chart verwenden. Erstellen Sie zunächst eine Plotly-Figur und übergeben Sie sie dann an st.plotly_chart, um sie in Ihrer Streamlit-App anzuzeigen. Das Ergebnis ist ein interaktives Diagramm, über das Benutzer schweben, hinein- und herauszoomen und sogar als statisches Bild herunterladen können.

2. Wie kann ich eine Plotly-Figur in Streamlit aktualisieren?

Sie können eine Plotly-Figur in Streamlit aktualisieren, indem Sie die Methoden update_layout und update_traces in Plotly verwenden. Die Methode update_layout ermöglicht es Ihnen, das Layout der Figur zu ändern, wie z.B. den Titel und die Achsenbeschriftungen. Die Methode update_traces ermöglicht es Ihnen, die Eigenschaften der dargestellten Daten zu ändern, wie z.B. die Farbe des Markers.

3. Wie kann ich Größenprobleme mit Plotly-Diagrammen in Streamlit vermeiden?

Sie können Größenprobleme mit Plotly-Diagrammen in Streamlit vermeiden, indem Sie die Parameter height und width der Funktion st.plotly_chart anpassen. Durch Einstellen von use_container_width=True wird das Diagramm die gesamte Breite der Hauptspalte der Streamlit-App einnehmen und somit gut in das Layout passen.