---
lang: de-DE
---

(vergleich)=
# Vergleich von Visualisierungstools


```{admonition} Story
:class: story
Nachdem Amir Weber sich über die Grundlagen der Visualisierung und das Bauen von Dashboards informiert hat, fragt er sich, welches Tool er zum Bauen eines Dashboards verwenden soll. Dazu sieht er sich mehrere Optionen an.
```


**Weshalb ein Vergleich mit anderen Visualisierungswerkzeugen sinnvoll ist:**

Der Vergleich zwischen Visualisierungswerkzeugen ist für datengetriebene Projekte besonders relevant, da jedes Tool unterschiedliche Stärken, Funktionalitäten und Zielgruppen adressiert. Die Auswahl eines geeigneten Visualisierungstools hängt maßgeblich von den konkreten Zielen, Anforderungen und Rahmenbedingungen eines Projekts ab, ebenso wie von den technischen Vorkenntnissen und persönlichen Präferenzen der Nutzer:innen. Während bekanntere, kommerzielle Tools wie Power BI und Tableau häufig im unternehmerischen Umfeld zum Einsatz kommen, werden R- und Python-basierte Lösungen vor allem im wissenschaftlichen und analytischen Kontext verwendet. Als Verwaltungsmitarbeiter:in oder Führungskraft im Management benötigen Sie in der Regel zügig erstellte, standardisierte Berichte und Dashboards zur Überwachung von KPIs. Programmierkenntnisse sind oft nicht vorhanden, weshalb eine intuitive Bedienung per Drag-and-Drop und eine nahtlose Integration in Office-Umgebungen im Vordergrund stehen. Allerdings bringt diese Bequemlichkeit auch Nachteile mit sich.

Im Folgenden werden einige Werkzeuge und ihre Besonderheiten näher erläutert und miteinander verglichen. Bitte beachten Sie, dass es sich hierbei bei weitem nicht um alle verfügbaren Visualisierungswerkzeuge handelt.

## Erläuterung der ausgewählten Visualisierungswerkzeuge

**Shiny:**  Shiny ist ein Open-Source-Webanwendungs-Framework, welches von RStudio und dementsprechend für die Programmiersprache R entwickelt worden ist. Das Shiny-Framework ermöglicht es R-Nutzern, ihre R-Analysen und Visualisierungen um webbasierte grafische Benutzeroberflächen (GUIs) funktional zu erweitern {cite:p}`walker_tools_2016`.

Der Hauptzweck von Shiny ist es, R-Analysen direkt in besagte GUIs zu übersetzen, ohne dass sie dafür die Programmiersprache wechseln müssen. Das Ziel ist es, die Kluft zwischen Datenanalyse und Endanwender zu schließen, sodass auch Personen ohne Programmierkenntnisse mit den Ergebnissen interagieren können {cite}`walker_tools_2016`. Inzwischen ist Shiny aber auch für Python verfügbar, was Python-erfahrenen Nutzer:innen das Neuerlernen von R erspart. 

**Power BI:** Das von Microsoft entwickelte Power BI ist ein Analysetool für Unternehmen, welches die Analyse von Daten und das Teilen von Erkenntnissen über Berichte und Dashboards ermöglicht. Entwickelt wurde Power BI mit dem Ziel, Business Intelligence und Datenanalyse zu vereinfachen, indem es Einzelpersonen und Organisationen ermöglicht, mit minimalem Zeit- und Arbeitsaufwand Daten beizutragen und somit Berichte zu erstellen oder über die Quick-Insights-Funktion automatisch generieren zu lassen. Zusammengefasst werden diese Berichte in Dashboards, welche anschließend freigegeben werden können {cite}`krishnan_research_nodate`.

**Tableau:** Bei Tableau handelt es sich um eine Software für die Erstellung von Visualisierungen. Entwickelt wurde Tableau von Tableau Inc. als Visualisierungstool für die Erstellung oder Programmierung von Dashboards im Business-Intelligence-Bereich {cite}`wood_diabetes_2019` {cite}`vasundhara_data_nodate`. Die Besonderheit an Tableau ist, dass die Verwendung durch das GUI mit Drag-and-Drop relativ unkompliziert ist {cite}`vasundhara_data_nodate`.

## Direkter Vergleich nach ausgewählten Kriterien

**Lizenzmodell und Einsatzszenarien:**

Da **Shiny** eine Open-Source-Anwendungen ist, kann dieses Framework kostenlos verwendet werden {cite}`dabbas_interactive_2021`. Im Gegensatz dazu setzen **Power BI** und **Tableau** für ihre vollständigen Versionen auf kommerzielle Lizenzmodelle. Power BI und Tableau bieten beide zusätzlich auch noch eine kostenfreie Version an, die allerdings nicht alle Funktionen der kostenpflichtigen Version bietet. Allerdings ist, besonders für kleine und mittlere Unternehmen, die kostenlose Option ausreichend {cite}`krishnan_research_nodate`.

**Programmiersprache, Zielgruppe, Bedienbarkeit, Erweiterbarkeit:**

**Shiny** ist vollständig auf der Programmiersprache R aufgebaut und eignet sich besonders für Nutzer:innen aus Wissenschaft und Datenanalyse {cite}`khedr_interactive_2021`. Diese Verbundenheit mit dem R-Ökosystem ist für Shiny ein enormer Vorteil, da Shiny dadurch leicht erweiterbar ist. Die Nutzung setzt jedoch Vorkenntnisse in der Programmiersprache R voraus. {cite}`walker_tools_2016`. Seine Python-Erweiterung erweitert allerdings den potentiellen Nutzerkreis um Personen, die sich bereits mit Datenanalyse-Tools wie pandas oder scikit-learn, die auf Python basieren, auskennen {cite}`odonnell_interaktive_2020`. Diese Fallstudie bezieht sich jedoch primär auf **R-Shiny**.

Da **Power BI** und **Tableau** dafür entwickelt wurden, um im Bereich Business-Intelligence und Unternehmenssektor angewendet zu werden, wird größtenteils auf herkömmliche Programmierung verzichtet, obwohl Tableau mit R verbunden werden kann, um die Darstellung besser auf die Erwartungen des Anwenders anpassen zu können. Anstelle von Programmierung nutzen beide Tools GUIs mit einer Drag-and-Drop-Funktionalität {cite}`odonnell_interaktive_2020` {cite}`vasundhara_data_nodate`. Allerdings bieten Tableau und Power BI eher geringe Erweiterbarkeit, da die Plugin-Optionen begrenzt sind. 

**Architektur**

```{figure} ../assets/R_Shiny_Aufbau.png
---
name: R_Shiny_Aufbau
alt: Ein Screenshot, der zeigt, wie man eine R-Shiny-Anwendung aufbauen kann.
width: 300px
---
R Shiny Aufbau (Quelle: <a href="https://www.inwt-statistics.com/blog/best-practice-development-of-robust-shiny-dashboards-as-r-packages"class="external-link" target="_blank">Best Practice: Shiny Dashboards</a> )
``` 

Eine **Shiny**-Anwendung besteht aus einer serverseitigen Logik und einer Benutzeroberfläche (UI). Beide Komponenten werden häufig in einer gemeinsamen Datei (app.R) implementiert. Eine Trennung ist jedoch möglich, indem Server- und UI-Teil in die Dateien server.R beziehungsweise ui.R ausgelagert und anschließend über app.R integriert werden {cite}`walker_tools_2016`.
**Tableau** basiert ebenfalls auf ähnlichen Client-Server-Architekturen.

Die Architektur von **Power BI** hingegen ist cloud-zentriert und umfasst mehrere Module. Eine cloud-zentrierte Architektur bezeichnet ein Systemdesign, bei dem die wesentlichen Prozesse der Datenverwaltung, Bereitstellung und Kollaboration in einer vernetzten Online-Infrastruktur stattfinden. Im Fall von **Power BI** dient die lokale Anwendung (**Power BI Desktop**) primär als Entwicklungsumgebung für die Datenmodellierung und das Berichtsdesign. Die zentrale Logik der Distribution und Nutzerinteraktion ist hingegen in den **Power BI Service** ausgelagert, der als Cloud-Plattform auf der Microsoft-Azure-Infrastruktur basiert. Diese Infrastruktur unterteilt sich in ein Front-End-Cluster zur Authentifizierung und ein Back-End-Cluster, welches die Datenverarbeitung und Visualisierung übernimmt. Durch den Einsatz eines **Power BI Gateways** wird zudem eine hybride Architektur ermöglicht, die lokale Datenquellen sicher mit der Cloud-Umgebung verbindet {cite}`arkharov_power_2024`.

```{figure} ../assets/PowerBI_Aufbau.png
---
name: Power BI Aufbau 
alt: Ein Screenshot, der zeigt, wie man eine Power-BI-Anwendung aufbauen kann.
width: 300px
---
Power BI Aufbau (Quelle: <a href="https://blog.coupler.io/power-bi-architecture/" class="external-link" target="_blank">Power BI Architecture: a Complete Guide to Mastering the Platforms</a> )
``` 

**Interaktivität und Visualisierungstiefe**

In Bezug auf Interaktivität bietet **Shiny**  das höchste Maß an Flexibilität, da es auf einem reaktiven Programmiermodell basiert. In Shiny-Anwendungen können Benutzer aktiv in den Analyseprozess eingebunden werden. Benutzer:innen können die Daten über interaktive Elemente wie Dropdowns, Karten oder Slider filtern. Jede Eingabe löst eine serverseitige Aktualisierung der Visualisierung aus.{cite}`dabbas_interactive_2021`.

Auch **Power BI** und **Tableau** bieten Interaktivität, dies jedoch innerhalb ihrer Benutzeroberflächen.  Standardmäßig sind nur Filter, Drilldowns und Highlighting-Funktionen vorhanden {cite}`walker_tools_2016`. Im Vergleich zu Shiny und Dash ist die Tiefe der Interaktivität jedoch begrenzt, da es schwieriger und komplexer ist, benutzerdefinierte Logiken umzusetzen. 

**Einbindung externer Daten**

**Shiny** ist extrem flexibel im Bereich der Datenintegration, da es auch hier von den Vorteilen der Anbindung des R-Ökosystems profitiert. Dies ermöglicht es R-Nutzern, mit einer Vielzahl von Datenquellen zu arbeiten, darunter CSV-, Excel- und JSON-Dateien sowie mit relationalen Datenbanken {cite}`attali_shiny_2020`. 

**Power BI** bietet eine umfangreiche Anzahl an Datenkonnektoren, die eine unkomplizierte Verbindung zu verschiedenen Datenquellen ermöglichen. Hierzu gehören unter anderem Excel, CSV-Dateien, relationale Datenbanken wie SQL Server, Oracle oder MySQL sowie Cloud-Dienste wie Azure, Salesforce oder Google Analytics {cite}`davidiseminger_data_nodate`. Es ermöglicht zusätzlich die Integration von ETL-Prozessen zur Datenbereinigung (Extract, Transform, Load) {cite}`odonnell_interaktive_2020`.

**Tableau**  erlaubt ebenso eine Vielzahl an Datenanbindungen. Es unterstützt strukturierte Daten aus Datenbanken (z. B. MySQL, PostgreSQL, Snowflake) sowie Daten aus Cloud-Diensten und unstrukturierte Quellen wie Excel- oder Textdateien {cite}`noauthor_supported_nodate`.


**Zusammenfassung** 

Die folgende Tabelle fasst die Unterschiede der Werkzeuge mithilfe eines Vergleiches entlang relevanter Kriterien zusammen:

| **Kriterium**                | **R Shiny**                            | **Power BI**                                      | **Tableau**                     |
|-----------------------------|-----------------------------------------|---------------------------------------------------|----------------------------------|
| **Programmiersprache**      | R                                       | Softwareanwendung                                | Softwareanwendung                |
| **Zielgruppe**              | Wissenschaft, Datenanalyse              | Business, Management                              | Business, Management             |
| **Bedienbarkeit durch Erstellende**  | Mittel (Erfahrung in R)                 | Sehr einfach (Drag & Drop)                        | Sehr einfach (Drag & Drop)       |
| **Nutzerfreundlichkeit von Konsumentenseite**    | Mittel                                  | Hoch                                              | Hoch                             |
| **Interaktivität**          | Sehr hoch (frei programmierbar)         | Hoch (vorgefertigte Elemente)                          | Hoch (vorgefertigte Elemente)         |
| **Erweiterbarkeit**         | Sehr hoch (eigener R-Code)              | Gering (Plugins)                                  | Gering (Plugins)                 |
| **Einsatzgebiet**           | Forschung, Open Data, Reports           | Business-Intelligence-Berichte                    | Business-Intelligence-Berichte   |
| **Lizenz/Kosten**           | Open Source, kostenlos                  | Proprietär, kostenpflichtig (mit Free Tier)       | Proprietär, kostenpflichtig      |
| **Visualisierungstiefe**    | Hoch (flexibel anpassbar)              | Mittel (vordefinierte Visuals)                    | Mittel (vordefinierte Visuals)   |
| **Einbindung externer Daten** | Sehr einfach (R-Pakete)               | Sehr einfach (GUI-Connectoren)                    | Sehr einfach (GUI-Connectoren)   |
| **Programmiererfahrung nötig?** | Ja (R-Grundkenntnisse)             | Nein                                              | Nein                             |
| **Architektur**             | Client-Server          | Client-Server          | Client-Server         |
| **Einbettung in Webprojekte** | Einfach (<a href="https://www.shinyapps.io/" class="external-link" target="_blank">Shinyapps.io</a>, Server)       | Eingeschränkt (hauptsächlich Business Reporting)  | Eingeschränkt                    |
| **Lernkurve**               | Moderat bis steil                         | Flach                                           | Flach                          |

## Fazit
Die Entscheidung für **R Shiny** als primäres Visualisierungswerkzeug in diesem Projekt begründet sich durch die spezifischen Anforderungen an analytische Tiefe, methodische Transparenz und Flexibilität. Als kostenloses Open-Source-Framework fügt sich Shiny ideal in den wissenschaftlichen sowie verwaltungstechnischen Kontext (Open Data) ein und vermeidet die Pfadabhängigkeiten und Einschränkungen proprietärer Lizenzmodelle, wie sie bei Power BI oder Tableau bestehen.
Da Shiny auf der Programmiersprache **R** basiert, profitieren Erstellende von einer guten Erweiterbarkeit durch das R-Ökosystem. Zwar erfordert dies, im Gegensatz zu intuitiven Drag-and-Drop-Lösungen, fundierte Programmierkenntnisse bei der Erstellung, jedoch überwiegt der analytische Nutzen: Die **Client-Server-Architektur** von Shiny ermöglicht es, komplexe Prozesse der Datenbereinigung und die Anbindung vielfältiger externer Datenquellen nahtlos mit der visuellen Ausgabe zu verzahnen. Dies sichert die Datenkontrolle und die wissenschaftliche Reproduzierbarkeit der Ergebnisse. Zusätzlich können inzwischen auch Pythonnutzer:innen ohne besondere R-Kenntnisse von Shiny gebrauch machen. Die Wahl fällt hier jedoch dennoch auf die R-Variante, da die Sprache R selbst explizit für statistische Berechnungen und Grafiken erschaffen wurde.
Darüber hinaus bietet Shiny eine bessere Visualisierungstiefe und Interaktivität. Im Gegensatz zu den vordefinierten Funktionen standardisierter Business-Intelligence-Software lassen sich mit Shiny maßgeschneiderte, interaktive Weboberflächen (GUIs) frei programmieren. Dies erlaubt es der Zielgruppe (also auch Endanwender:innen ohne Programmierkenntnisse), tief in die explorative Datenanalyse einzutauchen. Zusammenfassend stellt R Shiny in unserem Anwendungsfall das passendste Werkzeug dar, um komplexe, datengetriebene Modelle transparent, reproduzierbar und mit großem Gestaltungsspielraum in eine interaktive Webanwendung zu übersetzen.

**Literatur**

```{bibliography}
:filter: docname in docnames
```
