Streamlit vs. Dash vs. Shiny vs. Voila vs. Flask vs. Jupyter

Dashboarding Tools und Frameworks im Vergleich

by
DataRevenue
Markus Schmitt
Ein Diagramm, das den GitHub Star-Verlauf von Viola, Dash, Shiny, Streamlit, Jupyter und Panel zeigt.Ein Diagramm, das den GitHub Star-Verlauf von Viola, Dash, Shiny, Streamlit, Jupyter und Panel zeigt.
In den letzten drei Jahren haben Dash und Streamlit als All-in-one-Lösungen stark an Beliebtheit gewonnen.

Data Dashboards – Tools und Bibliotheken

Nahezu jedes Unternehmen verfügt über wertvolle Daten, die von internen Teams ausgewertet werden. Nicht-technische Teams benötigen oft Tools, um diese Analysen zu vereinfachen. Damit sie sich nicht für jede Fragestellung direkt an einen Datenexperten wenden müssen, suchen Teams nach dynamischen Dashboards, in denen sie ihre Analysen einfach ausführen und sich benutzerdefinierte, interaktive Visualisierungen anzeigen lassen können.

Eine Gegenüberstellung von unübersichtlichem Code und einem übersichtlichen Dashboard.
Dashboards können Daten für alle leichter zugänglich machen.

Ein Dashboard besteht aus unterschiedlichen Komponenten und deckt dabei folgende Funktionen ab:

  • Analysieren: Daten werden mithilfe einer Backend-Bibliothek wie Pandas bearbeitet und analysiert.
  • Visualisieren: Diagramme und Grafiken werden mit Hilfe einer Grafikbibliothek wie z.B. Bokeh erstellt.
  • Interagieren: Nutzer Input wird über eine Frontend-Bibliothek wie z.B. React entgegengenommen.
  • Serving: Nutzeranfragen werden bearbeitet und die Ergebnisse dann als Webseite über Webservern, wie Flask, bereitgestellt.

Früher hätte man viel Zeit investieren müssen, diese Elemente unter Einsatz von viel Code zu verbinden. Dank neuerer Bibliotheken wie Streamlit und Dash gibt es diese Komponenten jedoch mittlerweile in all-in-one Tools.

Es ist aber trotzdem nicht leicht sich für eins der verfügbaren Tools zu entscheiden. In diesem Artikel findest du daher einen detaillierten Kopf-an-Kopf Vergleich, mit dem die Entscheidung leichter fallen sollte.

[Interessierst du dich für mehr detaillierte Machine Learning Tool-Vergleiche? Abonniere unseren wöchentlichen Newsletter.]

Für was soll ich mich entscheiden?

Wie immer gilt: "Es kommt darauf an" - solltest du jedoch nach einer schnellen Antwort suchen, dann entscheide dich für:

  • Dash, wenn du für deine Analysen bereits Python nutzt und produktionsreife Dashboards für ein größeres Unternehmen erstellen möchtest.
  • Streamlit wenn du für deine Analysen bereits Python verwendest und so schnell wie möglich einen Prototyp deines Dashboards zum Einsatz bringen möchtest.
  • Shiny wenn du für deine Analysen bereits R verwendest und deine Ergebnisse für nicht-technische Teams zugänglich machen möchtest.
  • Jupyter wenn dein Team sehr technisch versiert ist und nichts dagegen hat, Entwickler-Tools zu verwenden.
  • Voila wenn du bereits Jupyter Notebooks hast und sie für nicht-technische Teams zugänglich machen möchtest.
  • Panel wenn du bereits mit Jupyter Notebooks arbeitest und Voila für deine Bedürfnisse nicht flexibel genug ist.
  • Flask wenn du deine eigene Lösung von Grund auf selbst aufbauen willst.

Kurzer Überblick

Nicht alle dieser Bibliotheken sind direkt miteinander vergleichbar. Dash baut beispielsweise auf Flask auf, Flask kann wiederum sehr viel allgemeiner für die Entwicklung von Webanwendungen eingesetzt werden. Daher setzt auch jede Bibliothek ihren jeweiligen Schwerpunkt auf unterschiedliche Bereiche.

  • Streamlit, Dash und Panel sind vollständige Dashboarding-Lösungen, die sich auf Python-basierte Datenanalyse spezialisieren und auf den Web-Frameworks Tornado und Flask laufen.
  • Shiny ist eine vollständige Dashboarding-Lösung, spezialisiert auf Datenanalysen mit R.
  • Jupyter ist ein Notebook, das Data Scientists zur Datenanalyse und -bearbeitung verwenden. Es kann auch zur Visualisierung von Daten eingesetzt werden.
  • Voila ist eine Bibliothek, die einzelne Jupyter Notebooks in interaktive Webseiten verwandelt.
  • Flask ist ein Python-Web-Framework zur Erstellung von Websites und Anwendungen - nicht zwangsläufig mit einem Fokus auf Data Science.

Einige dieser Bibliotheken gibt es schon seit einiger Zeit, andere sind dagegen ganz neu. Manche sind eher starr und verfügen über ihre eigene Struktur, während sich andere recht flexibel anpassen lassen. Manche Bibliotheken konzentrieren sich außerdem auf bestimmte Sprachen. Die entsprechenden Kompromisse haben wir in dieser Tabelle zusammengefasst:

Alle Bibliotheken wurden verglichen hinsichtlich:

  • Entwicklungsstand: Wie lange gibt es das Tool schon und wie zuverlässig ist es.
  • Beliebtheit: Anzahl an GitHub-Sternen.
  • Leichte Handhabung: Wie schwierig ist es, die Bibliothek zu nutzen.
  • Adaptierbarkeit: Wie flexibel ist die Bibliothek.
  • Fokus: Welche Problemstellungen kann die Bibliothek lösen.
  • Sprache: Die Sprachen, die von der Bibliothek unterstützt werden.

Hier handelt es sich weniger um streng wissenschaftlichen Maßstäbe, sondern vor allem um einen groben Überblick darüber, an welchen Punkten sich die Tools überlappen und wo sie sich unterscheiden. Genauere Details findest du in unseren Kopf-an-Kopf Vergleichen: 

Streamlit vs. Dash

Streamlit und Dash sind die beiden ähnlichsten Bibliotheken in diesem Ensemble. Beide sind vollständige Dashboarding-Lösungen, die mit Python erstellt wurden, und beide enthalten Komponenten zur Datenanalyse, Visualisierung, Benutzerinteraktion und Serving. 

Obwohl beide Versionen als Open Source verfügbar sind, ist Dash mehr auf den Unternehmensmarkt ausgerichtet und enthält nicht alle Funktionen (wie z.B. Job-Queues) in der Open Source-Version. Im Gegensatz dazu ist Streamlit vollständig Open Source. 

Streamlit ist stärker strukturiert und mehr auf Simplizität ausgerichtet. Es unterstützt nur Python-basierte Datenanalyse und bietet nur eine begrenzte Auswahl an Widgets (z.B. Schieberegler).

Dash ist anpassungsfähiger. Obwohl es in Python entwickelt wurde und die Benutzer zu einer eigenen Plotting-Bibliothek (Plotly) animiert, ist es auch mit anderen Plotting-Bibliotheken und sogar mit anderen Sprachen wie R oder Julia kompatibel. 

Unsere Empfehlung: Entscheide dich für Streamlit, wenn du so schnell wie möglich loslegen möchtest und kaum unternehmensspezifische Anforderungen hast. Verwende Dash, wenn du nach etwas flexiblerem und ausgereifterem suchst und es dir nichts ausmacht, zusätzliche Programmierzeit zu investieren.

Streamlit vs. Shiny

Streamlit ist ein Dashboarding-Tool, das auf Python basiert, während Shiny R anwendet. Beide Tools konzentrieren sich darauf, Datenanalyseskripte in vollständige und interaktive Webanwendungen zu verwandeln. 

Python ist eine Allzwecksprache, während sich R ausschließlich auf Datenanalyse konzentriert. Daher sind die Webanwendungen, die man mit Streamlit erstellt (basierend auf dem Tornado-Webserver) leistungsfähiger und einfacher auf Produktionsumgebungen zu skalieren.

Shiny nutzt R Plotting-Bibliotheken verwenden, wie z.B. ggplot2, während sich Streamlit gut mit Python-Plotting-Bibliotheken wie Bokeh oder Altair integriert.

Unsere Empfehlung: Nutze Shiny, wenn du Datenanalysen in R bevorzugst und dich bereits gut damit auskennst. Ansonsten entscheide dich für Streamlit (oder Dash - siehe oben).

Streamlit vs. Voila 

Streamlit ist eine vollständige Dashboarding-Lösung, während Voila die etwas simplere und limitiertere Variante darstellt. Mit Voila kann man vorhandene Jupyter Notebooks in Dashboards umwandeln und Web-Anwendungen für nicht-technische Nutzer erstellen.

Ähnlich wie Streamlit basiert Voila auf dem Tornado-Web-Framework. Kombiniert man Voila mit Jupyter Notebooks erhält man eine ähnliche Lösung wie Streamlit. Streamlit ist jedoch flexibler (da es nicht die Verwendung von Jupyter voraussetzt), Voila ist dagegen in der Handhabung einfacher.

Voila arbeitet mit der Widget-Bibliothek von Jupyter, Streamlit dagegen mit benutzerdefinierten Widgets. Wer sich mit Jupyter also bereits auskennt, wird sich mit Voila leichter zurechtfinden.

Unsere Empfehlung: Wenn du nach einer Komplettlösung suchst, entscheide dich für Streamlit. Solltest du bereits mit Jupyter Notebooks arbeiten, und willst diese nur umwandeln, müsste Voila ausreichen.

Streamlit vs. Panel

Streamlit und Panel sind beides Dashboarding Lösungen; Panel lässt sich jedoch - ähnlich wie Voila - besser mit Jupyter Notebooks kombinieren. Entwickler können sowohl Streamlit als auch Panel einsetzen, um interaktive Dashboards für nicht-technische Nutzer zu erstellen. Panel kann jedoch zusätzlich für die interne Datenexploration genutzt werden.

Unsere Empfehlung: Entscheide dich für Streamlit, wenn du eine ausgereiftere Dashboarding-Lösung suchst und dein Hauptziel darin liegt, Dashboards für nicht-technische Nutzer zu erstellen. Nutze Panel, wenn du bereits mit Jupyter Notebooks arbeitest und etwas leistungsfähigeres als Voila brauchst, um sie in Dashboards zu verwandeln.

Streamlit vs. Jupyter Notebooks

Streamlit ist eine vollständige Dashboarding-Lösung, Jupyter Notebooks eignen sich hingegen in erster Linie für Entwickler, die Software und Visualisierungen entwickeln möchten. Entwickler benutzen Streamlit, um Dashboards für nicht-technische Nutzer zu erstellen. Jupyter Notebooks werden dafür eingesetzt, interaktiv zu programmieren und Code mit anderen Entwicklern zu teilen.

In Kombination mit Add-Ons wie Voila können Jupyter Notebooks ähnlich wie Streamlit verwendet werden, Dashboarding ist jedoch eindeutig nicht der Hauptfokus von Jupyter Notebooks.

Unsere Empfehlung: Entscheide dich für Streamlit, wenn du Dashboards benötigst, die auch von technisch weniger versierten Personen genutzt werden können. Jupyter Notebooks eignen sich am besten, wenn das Team hauptsächlich aus Entwicklern besteht und mehr Wert auf Funktionalität als auf Ästhetik gelegt wird.

Streamlit vs. Flask

Streamlit ist ein Dashboarding-Tool, bei Flask handelt es sich um ein Web-Framework. Flask bietet keine Möglichkeiten zur Datenvisualisierung, -manipulation oder -analyse. Da es sich jedoch um eine allgemeine Python-Bibliothek handelt, kann es problemlos mit anderen Bibliotheken kombiniert werden, die diese Aufgaben übernehmen. Streamlit ist ein All-in-one-Tool, das sowohl Web-Serving als auch Datenanalyse abdeckt.

Unsere Empfehlung: Entscheide dich für Streamlit, wenn du nach einem strukturierten Dashboard suchst, das viele nützliche Komponenten bereits enthält. Streamlit eignet sich eher dann, wenn du relativ unkompliziert ein Dashboard erstellen möchtest, ohne dabei das Rad neu erfinden zu müssen. Flask ist dagegen die bessere Wahl, wenn du von Grund auf eine stark individualisierte Lösung entwickeln möchtest und du die nötigen Kapazitäten dafür hast.

Dash vs Panel

Dash und Panel sind beides Dashboarding Lösungen; Panel lässt sich jedoch besser mit Jupyter Notebooks kombinieren. Mit Dash können Entwickler das Front-end mit HTML und CSS selbst anpassen, Panel erstellt dagegen automatisch Front-ends, die nur auf Python basieren.

Entwickler können mit Panel interaktive Dashboards für nicht-technische Benutzer erstellen, es eignet sich aber auch zur Datenexploration.

Unsere Empfehlung: Nutze Dash, wenn du individualisierbare Dashboards für nicht-technische Nutzer erstellen möchtest. Entscheide dich für Panel, wenn du bereits mit Jupyter Notebooks arbeitest und mehr Flexibilität wünschst, als Voila bieten kann.

Dash vs. Shiny

Dash und Shiny sind beides vollständige Dashboarding-Tools. Dash bewegt sich dabei hauptsächlich im Python-Ökosystem, während Shiny ausschließlich für R entwickelt wurde.

Dash ist flexibler als Shiny und bietet mehr Funktionen, insbesondere in der Enterprise-Version. Python ist eine Allzweck-Programmiersprache, während sich R ausschließlich auf die Datenanalyse konzentriert. Einige Data Scientists bevorzugen R wegen seiner ausgereiften Bibliotheken und seines (oft) prägnanteren Codes. Entwickler bevorzugen in der Regel Python, da es sich besser an andere Sprachen anpassen lässt.

Unsere Empfehlung: Entscheide dich für Dash, wenn dein Team gerne mit Python arbeitet. Entscheide dich für Shiny, wenn das Team R bevorzugt.

Dash vs. Voila und Jupyter Notebook

Dash ist eine All-in-one Dashboarding Lösung, während Voila mit einem Jupyter Notebook kombiniert werden muss, um ähnliche Ergebnisse zu erzielen. Dash ist leistungsfähiger und wurde speziell für die Erstellung von Dashboards entwickelt, während Voila mit einem Jupyter Notebook kombiniert wird, um es in eigenständige Web-Anwendungen umzuwandeln. 

Unsere Empfehlung: Entscheide dich für Dash, wenn du ein skalierbares, flexibles Dashboarding-Tool aufbauen willst. Verwende Voila, wenn du bereits Jupyter Notebooks hast, die auch von nicht-technischen Teams genutzt werden sollen.

Dash vs. Flask

Dash basiert auf Flask und arbeitet mit Flask als Web-Routing-Komponente. Es ist daher nicht besonders aussagekräftig, diese beiden Tools direkt miteinander zu vergleichen. Dash ist ein Dashboarding-Tool, während Flask ein minimalistisches, generisches Web-Framework darstellt. Flask enthält keine Datenanalyse-Tools, kann aber mit anderen Python-Bibliotheken kombiniert werden, mit denen Analysen durchgeführt werden können.

Unsere Empfehlung: Nutze Dash, wenn du ein Dashboard erstellen möchtest. Entscheide dich für Flask, wenn du eine allgemeinere Web-Anwendung erstellen möchtest.

Shiny vs. Voila + Jupyter Notebooks

Shiny ist eine Dashboarding-Lösung für R. Man kann zwar auch Voila und Jupyter Notebooks mit R verwenden, diese Tools konzentrieren sich aber eher auf das Python-Ökosystem. 

Unsere Empfehlung: Entscheide dich für Shiny, wenn du deine Datenanalyse bereits in R durchführst. Benutze Voila, wenn du bereits Jupyter Notebooks hast, die du zugänglicher machen möchtest.

Shiny vs. Flask

Shiny ist eine in R entwickelte Dashboarding-Lösung. Flask ist ein in Python entwickeltes Web-Framework. Shiny funktioniert gut mit R-Plotting-Bibliotheken, wie z.B. ggplot2. Flask hat standardmäßig keine Datenanalyse-Tools eingebaut.

Unsere Empfehlung: Verwende Shiny, wenn du ein Dashboard erstellen und deine Analysen mit R durchführen möchtest. Entscheide dich für Flask, wenn du eine allgemeine Webanwendung komplett neu erstellen möchtest.

Voila vs. Flask

Voila ist eine Bibliothek zur Konvertierung von Jupyter Notebooks in eigenständige Webanwendungen und deren Bereitstellung mit Tornado. Ebenso wie Tornado ist Flask ein allgemeines Web-Framework. Man könnte zwar Flask für Jupyter Notebooks verwenden, müsste dafür aber den größten Teil der Voila-Bibliothek neu implementieren. Wenn es also keinen ganz bestimmten Grund dafür gibt, ist es besser, einfach Voila zu verwenden.

Anmerkungen zum Schluss

Alle hier vorgestellten Tools können dabei helfen, auf wertvolle Inhalte in vorhandenen Daten zuzugreifen. Ein Fehler, den wir häufig beobachten, besteht jedoch darin, dass sich Teams oft zu sehr mit der Auswahl der richtigen Tools beschäftigen, anstatt sich auf die Daten selbst zu konzentrieren. Auch wenn die Verwendung falscher Tools die Analysen definitiv behindern kann, so verzetteln sich Teams doch häufig vor allem durch sogenanntes Bikeshedding: Es wird zu viel Zeit damit verbracht, über Details zu debattieren, die eigentlich nicht wirklich wichtig sind.

Wenn du dich über Möglichkeiten unterhalten möchtest, wie du mehr aus deinen Daten machen kannst – vor allem mit Machine Learning – dann buche gerne ein kostenloses und unverbindliches Gespräch mit unserem CEO.

Bekomme immer die neusten Artikel

Trag dich mit deiner E-Mail ein, um du bekommst jede Woche unseren neusten Artikel.

Ich danke Ihnen! Ihre Einreichung ist eingegangen!
Oops! Something went wrong while submitting the form.