Skip to content

Erstellen Sie dynamische Tabs in Streamlit: Schneller Einstieg

Updated on

Streamlit ist eine beliebte Open-Source-Python-Bibliothek, mit der Entwickler interaktive Webanwendungen schnell und einfach erstellen können. Es ist besonders bei Datenwissenschaftlern beliebt aufgrund seiner Einfachheit und Effizienz beim Erstellen datengesteuerter Anwendungen. Eine der wichtigsten Funktionen, die Streamlit bietet, ist die Möglichkeit, Tabs zu erstellen, die zur Strukturierung des Layouts Ihrer Anwendungen und zur Verbesserung der Benutzerführung unerlässlich sind.

Haben Sie von diesem großartigen Tool zur Datenanalyse und Datenvisualisierung gehört, das Ihre Streamlit-App in eine Tableau-ähnliche Benutzeroberfläche verwandelt?

PyGWalker (opens in a new tab) ist eine Python-Bibliothek, die Ihnen dabei hilft, problemlos eine Tableau-ähnliche Benutzeroberfläche in Ihre eigene Streamlit-App einzubetten. Schauen Sie sich dieses erstaunliche Video von Wie man Daten mit PyGWalker in Python erkundet (opens in a new tab) an, das die genauen Schritte zur Stärkung Ihrer Streamlit-App mit dieser leistungsstarken Python-Bibliothek für Datenvisualisierung demonstriert!


Besonderer Dank geht an Sven und seinen großartigen Beitrag (opens in a new tab) zur PyGWalker-Community!

Zusätzlich können Sie auch die PyGWalker-GitHub-Seite (opens in a new tab) für weitere PyGWalker-Beispiele besuchen.

Teil 1. Was sind Streamlit-Tabs?

Tabs in Streamlit sind Container, die beliebigen Inhalt aufnehmen können, den Sie in Ihrer Anwendung erstellen möchten. Sie bieten eine einfache Möglichkeit, zwischen Gruppen von verwandtem Inhalt zu navigieren und Ihre Anwendung organisierter und benutzerfreundlicher zu gestalten. Sie können beispielsweise Tabs verwenden, um verschiedene Abschnitte Ihres maschinellen Lernexperiments, wie Datenvisualisierung, Modelltraining und Ergebnisanalyse, zu trennen.

Teil 2. Warum Tabs in Streamlit verwenden?

Der Hauptzweck der Verwendung von Tabs in Streamlit besteht darin, verwandten Inhalt in unabhängigen Ansichten zu gruppieren. Dadurch wird nicht nur die Benutzererfahrung durch eine saubere und organisierte Benutzeroberfläche verbessert, sondern es ermöglicht auch einen effizienteren Arbeitsablauf. Zum Beispiel können Sie in einem maschinellen Lernprojekt separate Tabs für die Datenvorverarbeitung, das Modelltraining, die Auswertungsmetriken und Vorhersagen haben.

Teil 3. Wie erstellt man Tabs in Streamlit?

Um Tabs in Streamlit zu erstellen, müssen Sie zunächst eine Liste mit Tab-Titeln erstellen. Jede Option in dieser Liste entspricht dem Namen eines Tabs. Anschließend schreiben Sie für jeden Tab den Inhalt, den Sie anzeigen möchten. Hier ist ein einfaches Beispiel:

import streamlit as st
 
st.title('Meine Anwendung')
 
# Tabs erstellen
tab_titles = ['Thema A', 'Thema B', 'Thema C']
tab1, tab2, tab3 = st.tabs(tab_titles)
 
# Inhalt zu jedem Tab hinzufügen
with tab1:
    st.header('Thema A')
    st.write('Inhalt von Thema A')
 
with tab2:
    st.header('Thema B')
    st.write('Inhalt von Thema B')
 
with tab3:
    st.header('Thema C')
    st.write('Inhalt von Thema C')

In diesem Beispiel haben wir drei Tabs mit den Titeln 'Thema A', 'Thema B' und 'Thema C' erstellt. Jeder Tab zeigt eine Überschrift und etwas Text an.

Teil 4. Mehrere Tabs in Streamlit erstellen

Das Erstellen mehrerer Tabs in Streamlit erfolgt nach demselben Prozess wie das Erstellen eines einzelnen Tabs. Sie fügen einfach weitere Optionen zur Liste der Tab-Titel hinzu und fügen dann für jeden Tab Inhalt hinzu. Dies ist besonders nützlich, wenn Sie viel verwandten Inhalt haben, den Sie in separate Abschnitte gruppieren möchten.

Angenommen, Sie erstellen eine Streamlit-Anwendung für ein maschinelles Lernprojekt. Sie könnten separate Abschnitte für die Datenvorverarbeitung, das Modelltraining, die Modellauswertung und die Ergebnisvisualisierung haben. Jeder dieser Abschnitte kann in einen eigenen Tab gruppiert werden, um Ihre Anwendung organisierter und leichter navigierbar zu machen.

Hier ist ein Beispiel, wie man mehrere Tabs in Streamlit erstellt:

import streamlit as st
 
st.title('Mein maschinelles Lernprojekt')
 
# Tabs erstellen
tab_titles = ['Datenvorverarbeitung', 'Modelltraining', 'Modellauswertung', 'Ergebnisvisualisierung']
tabs = st.tabs(tab_titles)
 
# Inhalt zum Tab "Datenvorverarbeitung" hinzufügen
with tabs[0]:
    st.header('Datenvorverarbeitung')
    st.write('Hier können Sie Ihre Daten vorverarbeiten.')
 
# Inhalt zum Tab "Modelltraining" hinzufügen
with tabs[1]:
    st.header('Modelltraining')
    st.write('Hier können Sie Ihr Modell trainieren.')
 
# Inhalt zum Tab "Modellauswertung" hinzufügen
with tabs[2]:
    st.header('Modellauswertung')
    st.write('Hier können Sie Ihr Modell auswerten.')
 
# Inhalt zum Tab "Ergebnisvisualisierung" hinzufügen
with tabs[3]:
    st.header('Ergebnisvisualisierung')
    st.write('Hier können Sie Ihre Ergebnisse visualisieren.')

In diesem Beispiel haben wir vier Tabs für ein maschinelles Lernprojekt erstellt. Jeder Tab entspricht einem anderen Abschnitt des Projekts, und jeder Tab enthält seinen eigenen Inhalt.

Sie können beliebig viele Tabs hinzufügen, und jeder Tab kann beliebigen Inhalt enthalten, wie Text, Bilder, Diagramme und Widgets. Dies macht Streamlit-Tabs zu einem vielseitigen Werkzeug für die Erstellung interaktiver und dynamischer Anwendungen.

Das Erstellen mehrerer Tabs in Streamlit ist eine einfache und effektive Möglichkeit, die Funktionalität und Benutzererfahrung Ihrer Anwendungen zu verbessern. Also, starten Sie die Erkundung dieser Funktion und sehen Sie, wie sie Ihren Projekten zugute kommen kann.

Teil 5. Dynamische Tabs in Streamlit erstellen

Dynamische Tabs in Streamlit sind Tabs, die dynamisch basierend auf Inhalten von einem Server oder einer API erstellt und gerendert werden. Dies ist vorteilhaft, wenn die Anzahl der Tabs und ihre Inhalte nicht im Voraus bekannt sind und sich im Laufe der Zeit ändern können. Hier ist ein Beispiel, wie man dynamische Tabs in Streamlit erstellt:

import streamlit as st
 
st.title('Meine Anwendung')
 
# Funktion zum Abrufen von Tab-Inhalten vom Server
def get_tab_content():
    return [
        {'title': 'Thema A', 'content': 'Inhalt Thema A'},
        {'title': 'Thema B', 'content': 'Inhalt Thema B'},
        {'title': 'Thema C', 'content': 'Inhalt Thema C'},
    ]
 
# Tab-Inhalte vom Server abrufen
tab_contents = get_tab_content()
 
# Tabs erstellen
tab_names = [content['title'] for content in tab_contents]
tabs = st.tabs(tab_names)
 
# Durch jeden Tab iterieren und Inhalt erstellen
for tab, tab_content in zip(tabs, tab_contents):
    with tab:
        st.header(tab_content['title'])
        st.write(tab_content['content'])

In diesem Beispiel definieren wir zunächst eine Funktion get_tab_content, die simuliert, was ein Server oder eine API zurückgeben könnte. Diese Funktion gibt eine Liste von Wörterbüchern zurück, die jeweils einen Tab-Titel und Tab-Inhalt enthalten. Anschließend erstellen wir die Tabs und iterieren durch sie, um den Inhalt zu schreiben.

Par 6. Praktische Beispiele für Streamlit-Tabs

Streamlit-Tabs sind eine vielseitige Funktion, die in einer Vielzahl von Anwendungen eingesetzt werden kann, insbesondere im Bereich der Datenwissenschaft und des maschinellen Lernens. Hier ist ein detaillierter Einblick in einige praktische Anwendungen von Streamlit-Tabs:

Streamlit-Tabs für maschinelles Lernen

Stellen Sie sich vor, Sie sind tief in einem maschinellen Lernexperiment. Sie haben Datenverarbeitung, Modelltraining, Modellbewertung und Ergebnisvisualisierung, die alle gleichzeitig stattfinden. Es ist ein Wirbelwind aus Phasen und Prozessen, der leicht überfordernd werden könnte. Aber hier kommen Streamlit-Tabs zur Rettung. Indem Sie jeden Schritt in separate Tabs gruppieren, erleichtern Sie nicht nur die Navigation durch das Experiment für die Benutzer, sondern verbessern auch ihr Verständnis des gesamten Prozesses.

Beispielsweise könnten Sie eine Streamlit-Anwendung mit Tabs wie folgt haben:

import streamlit as st
 
st.title('Mein Maschinelles Lernexperiment')
 
# Tabs erstellen
tab_titles = ['Datenverarbeitung', 'Modelltraining', 'Modellbewertung', 'Ergebnisvisualisierung']
tabs = st.tabs(tab_titles)
 
# Inhalte zu jedem Tab hinzufügen
with tabs[0]:
    st.header('Datenverarbeitung')
    st.write('Hier verarbeiten wir die Daten...')
 
with tabs[1]:
    st.header('Modelltraining')
    st.write('Hier trainieren wir das Modell...')
 
with tabs[2]:
    st.header('Modellbewertung')
    st.write('Hier bewerten wir das Modell...')
 
with tabs[3]:
    st.header('Ergebnisvisualisierung')
    st.write('Hier visualisieren wir die Ergebnisse...')

In diesem Beispiel hat jeder Schritt des maschinellen Lernexperiments seinen eigenen Tab, was die Anwendung besser organisiert und benutzerfreundlicher macht.

Streamlit-Tabs für Datenauswertung

Datenauswertung ist das Herz und die Seele der Datenanalyse und des maschinellen Lernens. Es ist die Kunst, ein Bild mit Ihren Daten zu malen, und Streamlit-Tabs sind die perfekte Leinwand für dieses Meisterwerk. Mit Streamlit-Tabs können Sie separate Tabs für verschiedene Arten von Visualisierungen wie Balkendiagramme, Streudiagramme und Heatmaps erstellen. Dies ermöglicht es Benutzern, mühelos zwischen verschiedenen Visualisierungen zu wechseln und Erkenntnisse aus den Daten zu gewinnen.

Hier ist ein Beispiel dafür, wie Sie Streamlit-Tabs für die Datenauswertung verwenden könnten:

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
 
# Daten laden
data = pd.read_csv('data.csv')
 
st.title('Meine Datenauswertungsanwendung')
 
# Tabs erstellen
tab_titles = ['Balkendiagramm', 'Streudiagramm', 'Heatmap']
tabs = st.tabs(tab_titles)
 
# Inhalte zu jedem Tab hinzufügen
with tabs[0]:
    st.header('Balkendiagramm')
    st.bar_chart(data)
 
with tabs[1]:
    st.header('Streudiagramm')
    fig, ax = plt.subplots()
    ax.scatter(data['x'], data['y'])
    st.pyplot(fig)
 
with tabs[2]:
    st.header('Heatmap')
    st.heatmap(data.corr())

In diesem Beispiel zeigt jeder Tab einen anderen Typ von Datenauswertung, sodass Benutzer die Daten aus verschiedenen Perspektiven erkunden können.

Streamlit-Tabs für Dashboard-Erstellung

Streamlit-Tabs können verwendet werden, um interaktive Dashboards zu erstellen. Sie können beispielsweise einen Tab für Benutzereingaben, einen anderen Tab zur Anzeige der Daten und einen weiteren Tab zur Anzeige der Ergebnisse der Datenanalyse haben. Dadurch wird das Dashboard übersichtlicher und benutzerfreundlicher.

Hier ist ein Beispiel für ein Streamlit-Dashboard mit Tabs:

import streamlit as st
 
st.title('Mein Dashboard')
 
# Tabs erstellen
tab_titles = ['Benutzereingaben', 'Datenanzeige', 'Datenanalyse']
tabs = st.tabs(tab_titles)
 
# Inhalte zu jedem Tab hinzufügen
with tabs[0]:
    st.header('Benutzereingaben')
    st.text_input('Geben Sie etwas Text ein')
    st.number_input('Geben Sie eine Zahl ein')
 
with tabs[1]:
    st.header('Datenanzeige')
    st.table({'Spalte1': [1, 2, 3], 'Spalte2': [4, 5, 6]})
 
with tabs[2]:
    st.header('Datenanalyse')
    st.line_chart([1, 2, 3, 4, 5])

In diesem Beispiel enthält der Tab "Benutzereingaben" Eingabewidgets, der Tab "Datenanzeige" zeigt eine Tabelle mit Daten an und der Tab "Datenanalyse" zeigt ein Liniendiagramm.

Streamlit-Tabs zur Projektorganisation

Bei einem großen Projekt mit mehreren Komponenten können Streamlit-Tabs verwendet werden, um die Komponenten in separate Abschnitte zu organisieren. Dies macht das Projekt nicht nur besser handhabbar, sondern verbessert auch die Benutzererfahrung durch eine saubere und organisierte Benutzeroberfläche.

Wenn Sie beispielsweise eine große Anwendung mit mehreren Komponenten wie Datenladen, Datenaufbereitung, Datenanalyse und Datenvisualisierung erstellen, könnten Sie diese Komponenten mit separaten Tabs organisieren, wie zum Beispiel:

import streamlit as st
 
st.title('Mein großes Projekt')
 
# Tabs erstellen
tab_titles = ['Datenladen', 'Datenaufbereitung', 'Datenanalyse', 'Datenvisualisierung']
tabs = st.tabs(tab_titles)
 
# Inhalte zu jedem Tab hinzufügen
with tabs[0]:

Bitte geben Sie die deutsche Übersetzung für diese Markdown-Datei an. Wenn ein Frontmatter vorhanden ist, stellen Sie sicher, dass Sie das Sprachparameter in de übersetzen. Hier ist die Datei:

''' st.header('Daten laden') st.write('Hier laden wir die Daten...')

with tabs[1]: st.header('Datenbereinigung') st.write('Hier bereinigen wir die Daten...')

with tabs[2]: st.header('Datenanalyse') st.write('Hier analysieren wir die Daten...')

with tabs[3]: st.header('Datenvisualisierung') st.write('Hier visualisieren wir die Daten...') '''

In diesem Beispiel hat jeder Bestandteil des Projekts seinen eigenen dedizierten Tab, was die Anwendung besser organisiert und die Navigation erleichtert.

Teil 7. Fortgeschrittene Konzepte in Streamlit Tabs

Streamlit-Tabs bieten eine Reihe von fortgeschrittenen Funktionen, die die Funktionalität und Benutzererfahrung Ihrer Anwendungen verbessern können. Hier sind einige fortgeschrittene Konzepte in Streamlit-Tabs:

Streamlit Tab Container und seine Verwendung

Ein Streamlit Tab Container ist ein Container, der den Inhalt eines Tabs enthält. Sie können beliebigen Inhalt zu einem Tab-Container hinzufügen, wie Texte, Bilder, Plots und Widgets. Der Tab-Container bietet eine einfache Möglichkeit, verwandten Inhalt zu gruppieren und die Benutzerführung zu verbessern.

Zum Beispiel könnten Sie eine Streamlit-Anwendung mit einem Tab-Container haben:

import streamlit as st
 
st.title('Meine Anwendung')
 
# Erstellen Sie einen Tab-Container
tabs = st.tabs(['Tab 1', 'Tab 2', 'Tab 3'])
 
# Fügen Sie dem ersten Tab Inhalt hinzu
with tabs[0]:
    st.header('Tab 1')
    st.write('Das ist der Inhalt von Tab 1.')
 
# Fügen Sie dem zweiten Tab Inhalt hinzu
with tabs[1]:
    st.header('Tab 2')
    st.write('Das ist der Inhalt von Tab 2.')
 
# Fügen Sie dem dritten Tab Inhalt hinzu
with tabs[2]:
    st.header('Tab 3')
    st.write('Das ist der Inhalt von Tab 3.')

In diesem Beispiel ist jeder Tab ein Container, der seinen eigenen Inhalt enthält, und Benutzer können zwischen den Tabs wechseln, um unterschiedlichen Inhalt anzuzeigen.

Streamlit Tabbed Layout und Design

Streamlit bietet eine elegante API zum Erstellen und Gestalten interaktiver Apps in Python. Das tabbed layout ist eine der Designfunktionen, die Streamlit bietet. Mit einem tabbed layout können Sie Ihren Inhalt in separate Tabs organisieren, was Ihre Anwendung besser organisiert und benutzerfreundlicher macht.

Hier ist ein Beispiel für eine Streamlit-Anwendung mit einem tabbed layout:

import streamlit as st
 
st.title('Meine Anwendung')
 
# Erstellen Sie ein tabbed layout
tabs = st.tabs(['Tab 1', 'Tab 2', 'Tab 3'])
 
# Fügen Sie dem ersten Tab Inhalt hinzu
with tabs[0]:
    st.header('Tab 1')
    st.write('Das ist der Inhalt von Tab 1.')
 
# Fügen Sie dem zweiten Tab Inhalt hinzu
with tabs[1]:
    st.header('Tab 2')
    st.write('Das ist der Inhalt von Tab 2.')
 
# Fügen Sie dem dritten Tab Inhalt hinzu
with tabs[2]:
    st.header('Tab 3')
    st.write('Das ist der Inhalt von Tab 3.')

In diesem Beispiel hat die Anwendung ein tabbed layout mit drei Tabs, und jeder Tab enthält seinen eigenen Inhalt.

Streamlit tabbed Navigation und Benutzeroberfläche

Streamlit tabs bieten eine einfache Navigation zwischen Gruppen von verwandtem Inhalt. Der Übergang zwischen Tabs ist schnell und flüssig und bietet eine großartige Benutzererfahrung. Darüber hinaus können Sie Tabs dynamisch erstellen und Inhalt darin einfügen, was besonders nützlich ist, wenn die Anzahl der Tabs und ihr Inhalt im Voraus nicht bekannt sind.

Zum Beispiel könnten Sie eine Streamlit-Anwendung haben, bei der die Anzahl der Tabs und ihr Inhalt durch Benutzereingabe bestimmt werden:

import streamlit as st
 
st.title('Meine dynamische Anwendung')
 
# Holen Sie sich die Anzahl der Tabs vom Benutzer
num_tabs = st.number_input('Geben Sie die Anzahl der Tabs ein', min_value=1, max_value=10, value=3)
 
# Tabs erstellen
tab_titles = [f'Tab {i+1}' for i in range(num_tabs)]
tabs = st.tabs(tab_titles)
 
# Fügen Sie jedem Tab Inhalt hinzu
for i in range(num_tabs):
    with tabs[i]:
        st.header(f'Tab {i+1}')
        st.write(f'Das ist der Inhalt von Tab {i+1}.')

In diesem Beispiel kann der Benutzer die Anzahl der Tabs festlegen und die Anwendung erstellt die Tabs dynamisch und fügt Inhalt hinzu.

Streamlit Tabbed Content und Display

Streamlit-Tabs sind im Wesentlichen Container für alles, was Sie in Ihrer Anwendung erstellen möchten. Sie bieten eine Möglichkeit, eine Vielzahl von Inhalten anzuzeigen, wie Metriken, Plots, Diagramme und Eingabewidgets. Dadurch werden Streamlit-Tabs zu einem vielseitigen Werkzeug für die Erstellung interaktiver und dynamischer Anwendungen.

Hier ist ein Beispiel für eine Streamlit-Anwendung, die Tabs verwendet, um verschiedene Arten von Inhalten anzuzeigen:

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
 
# Laden Sie einige Daten
data = pd.read_csv('data.csv')
 
st.title('Meine Datenvisualisierungsanwendung')
 
# Tabs erstellen
tab_titles = ['Metriken', 'Plot', 'Diagramm', 'Eingabe']
tabs = st.tabs(tab_titles)
 
# Fügen Sie jedem Tab Inhalt hinzu
with tabs[0]:
    st.header('Metriken')
    st.metric('Metrik 1', 123)
    st.metric('Metrik 2', 456)
 
with tabs[1]:
    st.header('Plot')
    fig, ax = plt.subplots()
    ax.plot(data['x'], data['y'])
    st.pyplot(fig)
 
with tabs[2]:
    st.header('Diagramm')
    st.line_chart(data)
 
with tabs[3]:
    st.header('Eingabe')
    st.text_input('Geben Sie einen Text ein')
    st.number_input('Geben Sie eine Zahl ein')

In diesem Beispiel zeigt der Tab 'Metriken' Metriken an, der Tab 'Plot' zeigt einen Plot, der Tab 'Diagramm' zeigt ein Liniendiagramm und der Tab 'Eingabe' enthält Eingabewidgets.

Fazit

Streamlit-Tabs sind ein leistungsstarkes Feature, das die Funktionalität und Benutzererfahrung Ihrer Anwendungen erheblich verbessern kann. Egal, ob Sie an einem Data-Science-Projekt arbeiten, ein Dashboard erstellen oder eine komplexe Anwendung entwickeln, Streamlit-Tabs können Ihnen helfen, Ihren Inhalt zu organisieren und Ihre Anwendung benutzerfreundlicher zu machen. Beginnen Sie also heute mit der Erkundung von Streamlit-Tabs und sehen Sie, wie sie Ihren Projekten zugute kommen können.

Haben Sie von diesem tollen Data-Analysis-&-Data-Visualisation-Tool 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.

Häufig gestellte Fragen

Unterstützt Streamlit Tabs?

Ja, Streamlit unterstützt Tabs. Sie können in Ihrer Streamlit-Anwendung mehrere Tabs erstellen, um Ihren Inhalt zu organisieren und die Navigation für Benutzer zu verbessern.

Wie positioniert man Elemente in Streamlit?

In Streamlit positionieren Sie Elemente, indem Sie sie in der Reihenfolge schreiben, in der sie angezeigt werden sollen. Streamlit läuft von oben nach unten, daher ist die Reihenfolge, in der Sie Ihre Elemente schreiben, die Reihenfolge, in der sie in Ihrer Anwendung angezeigt werden.

Wie funktioniert Streamlit?

Streamlit funktioniert, indem Python-Skripte in interaktive Webanwendungen umgewandelt werden. Es bietet eine Reihe von APIs auf hoher Ebene zum Erstellen interaktiver Elemente wie Schieberegler, Kontrollkästchen und Tabs. Wenn Sie Ihr Streamlit-Skript ausführen, startet es einen Webserver und öffnet ein Browserfenster, das auf den Server zeigt.

Was ist die Aufgabe von Streamlit in Python?

Streamlit ist eine Python-Bibliothek zur Erstellung interaktiver Webanwendungen. Es ermöglicht Python-Entwicklern und Datenwissenschaftlern, Anwendungen für Datenanalyse, maschinelles Lernen und Datenvisualisierung zu erstellen, ohne HTML, CSS oder JavaScript zu kennen.