SlideShare ist ein Scribd-Unternehmen logo
Python-Bibliotheken zur
Datenvisualisierung
Veit Schiele
cusy GmbH, Berlin
Vortrag | Plonetagung | 10. März 2020
Veit Schiele
• Gründer und Geschäftsführer 

der Cusy GmbH
• Aufbau eines Rechenclusters am
Fraunhofer ISE
• Autor des Jupyter-Tutorial mit dem

prototypischen Verlauf eines Data-
Science-Projekts
Python-Datenvisualisierung: Intro
Intro
Agenda
1. Überblick
a. Technologien
2. Auswahlkriterien
b. Diagrammtypen
c. Datengröße
d. Ausgabeformate
3. APIs
a. deklarativ
b. objektorientiert
c. imperativ
4. Zukunftsvision
Überblick
Python-Datenvisualisierung: Überblick
OpenGL
Vispy
Glumpy
Matplotlib
Pandas
seaborn
ggpy
plotnine
Scikit-plot
Yellowbrick
NetworkX
Cartopy
mpld3
ipympl
Matplotlib Altair
GeoPandas
Graphviz
Bokeh
Iris
yt
Vaex
bqplot
HoloViews
Datashader
D3.js
d3po
plotly
Vega
Javascript
Cufflinks
Vincent
Vega-Lite
pythreejs
IPyvolume
Toyplot
ipyleaflet
Altair
Überblick
Python-Datenvisualisierung: Überblick
OpenGL
OpenGL
Vispy
Glumpy
Überblick
Python-Datenvisualisierung: Überblick
OpenGL
• OpenGL-Spezifikation zur 3D-Darstellung (1992)
• Visualisierung lokaler Dateien

→ Desktop-Anwendungen
Überblick
Python-Datenvisualisierung: Überblick
Matplotlib
Matplotlib
Überblick
Python-Datenvisualisierung: Überblick
Matplotlib
Matplotlib ist eine der ältesten (2003) und meist
genutzten Python-Bibliotheken zur Datenvisualisierung
• Pros

→ Ähnliches Design wie Matlab

→Viele verschiedene Rendering-Backends
• Cons

→ iterative API

→ ungenügende Standardeinstellungen
Überblick
Python-Datenvisualisierung: Überblick
Matplotlib-basiert
Matplotlib
Pandas
seaborn
ggpy
plotnine
Scikit-plot
Yellowbrick
NetworkX
Cartopy
GeoPandas
Iris
yt
Überblick
Python-Datenvisualisierung: Überblick
Matplotlib-baisert
Bibliotheken entstanden im Wesentlichen aus zwei
unterschiedlichen Gründen:
• zur Nutzung als Backend für spezifische Anwendungen
z.B. für pandas, NetworkX, Cartopy oder yt
• als Backend für High-Leel-APIs, wie z.B. für ggplot2,
plotnine, HoloViews, GeoViews und seaborn
Überblick
Python-Datenvisualisierung: Überblick
D3
mpld3
bqplot
D3.js
d3po
plotly
Cufflinks
Überblick
Python-Datenvisualisierung: Überblick
D3.js
D3.js-baiserte Visualisierungsbibliotheken wie plotly
oder bqplot nutzen die umfangreiche und ausgereifte
Javascript-Bibliothek zum Erstellen von interaktiven
Plots im Web-Browser.
Überblick
Python-Datenvisualisierung: Überblick
Javascript
ipympl
Bokeh
Javascript
pythreejs
IPyvolume
Toyplot
ipyleaflet
Überblick
Python-Datenvisualisierung: Überblick
Javascript
Javascript-baiserte Visualisierungsbibliotheken wie
Bokeh oder Toyplot nutzen v.a. HTML5 für ihre 2D-
Diagramme.
Dies erlaubt auch das Entwickeln neuer Plottypen, die
nur Grundelemente verwenden.
pythreejs, ipyvolume und itk-jupyter-Widgets nutzen
hingegen WebGL für Ihre 3D-Diagramme.
Überblick
Python-Datenvisualisierung: Überblick
Bokeh
Bokeh
Vaex
HoloViews
Datashader
Javascript
Überblick
Python-Datenvisualisierung: Überblick
Bokeh
Bokeh nutzt für 2D-Diagramme HTML5, kann aber auch
unregelmäßige 2D-Netze (dreieckige Gitter) und
Graphen.
Dies erlaubt das Entwickeln neuer Plottypen, die nur
Grundelemente von Bokeh verwenden.
Python-Datenvisualisierung: Diagrammtypen
Diagrammtypen
Regelmäßige Gitter/rechteckige Netze
• Bokeh
• Datashader
• HoloViews
• Matplotlib
• Plotly
Python-Datenvisualisierung: Diagrammtypen
Diagrammtypen
Statistische Diagramme
• Seaborn
• bqplotAltair
• ggplot2
• plotnine
Python-Datenvisualisierung: Diagrammtypen
Diagrammtypen
Unregelmäßige 2D-Netze/dreieckige Gitter

• Matplotlib
• Bokeh
• Datashader
• HoloViews
Python-Datenvisualisierung: Diagrammtypen
Diagrammtypen
Geografische Daten
• Cartopy
• GeoViews
• ipyleaflet
• Plotly
Python-Datenvisualisierung: Diagrammtypen
Diagrammtypen
Netzwerke/Graphen
• NetworkX
• Plotly
• Bokeh
• HoloViews
• Datashader
• Graphviz
Python-Datenvisualisierung: Diagrammtypen
Diagrammtypen
3D-Visualisierungen
• Plotly
• Matplotlib
• HoloViews
• ipyvolume
• pythreejs
Datengröße
Python-Datenvisualisierung: Datengröße
Die Architektur und die zugrunde liegende
Technologie für jede Bibliothek bestimmen die
unterstützten Datenmengen.
Datengröße
Python-Datenvisualisierung: Datengröße
OpenGL-Bibliotheken können im Allgemeinen sehr
große Raster-Datasets (Gigabyte oder mehr)
verarbeiten.
Datengröße
Python-Datenvisualisierung: Datengröße
Matplotlib-basierte Bibliotheken können in der Regel
Hunderttausende von Punkten verarbeiten.
Datengröße
Python-Datenvisualisierung: Datengröße
Javascript-basierte Bibliotheken wie ipywidgets,
Bokeh und Plotly verwenden zwar JSON, erweitern
sie jedoch um zusätzliche binäre Datentransport-

mechanismen, sodass sie nicht nur einige tausend
sondern hunderttausende bis Millionen von
Datenpunkten verarbeiten können.
Datengröße
Python-Datenvisualisierung: Datengröße
WebGL-Bibliotheken, die HTML-Canvas-Elemente
verwenden, sind auf höchstens Hunderttausende von
Punkten beschränkt.
Datengröße
Python-Datenvisualisierung: Datengröße
Serverseitiges Rendern von Datashader oder Vaex
ermöglicht Milliarden, Billionen oder mehr
Datenpunkte in Webbrowsern.
Dazu werden beliebig große verteilte oder nicht zum
Kern gehörende Datasets in Bilder fester Größe
konvertiert, um sie an den Browser auszuliefern.
Benutzeroberflächen und

Dateiformate
Die meisten Bibliotheken können statische Bilder
erstellen und zumindest in PNG, SVG oder PDF-Dateien
erstellen.
Python-Datenvisualisierung: Benutzeroberflächen und Dateiformate
Benutzeroberflächen und

Dateiformate
Die meisten Javascript-Bibliotheken können in einem
serverlosen Modus betrieben werden.
Diagramme können dann interaktiv erschlossen werden,
z.B. mit Zoomen, Verschieben etc. ohne dass hierbei
Python involviert ist.
Python-Datenvisualisierung: Benutzeroberflächen und Dateiformate
Benutzeroberflächen und

Dateiformate
Die meisten Javascript-Bibliotheken unterstützen die
interaktive Verwendung in Jupyter-Notebooks.
ipywidgets unterstützt die Interaktion in Integration
mit Jupyter.
Python-Datenvisualisierung: Benutzeroberflächen und Dateiformate
Benutzeroberflächen und

Dateiformate
Eigenständige webbasierte Dashboards
• Plotly-Diagramme können in separaten Apps mit Dash
verwendet werden
• Der Bokeh-Server stellt Diagramme von Bokeh,
HoloViews und GeoViews bereit
Python-Datenvisualisierung: Benutzeroberflächen und Dateiformate
Benutzeroberflächen und

Dateiformate
Eigenständige webbasierte Dashboards
• Die meisten anderen Bibliotheken können
mithilfe von Panel bereitgestellt werden
(ausgenommen die OpenGL-Bibliotheken).
Python-Datenvisualisierung: Benutzeroberflächen und Dateiformate
Python-Datenvisualisierung: APIs
Objektorientierte Matplotlib-Basis-API:
• Die API von Matplotlib ermöglicht vollständige
Kontrolle der Komposition, ist jedoch komplex
APIs
Python-Datenvisualisierung: APIs
Imperative Matplotlib-Pyplot-API:
• Die imperativen Befehle im Matlab-Stil sind für
einfache Fälle präzise
• kompositorisch sind sie jedoch sehr beschränkt
APIs
Python-Datenvisualisierung: APIs
Imperative pandas.plot() -API:
• Spezialisiert auf Teilmengen von Pandas-Dataframes
• nicht direkt kompositorisch, kann aber mehrerePlot-
Objekte zurückgeben
APIs
Python-Datenvisualisierung: APIs
Deklarative Grafik-APIs:
Von «The Grammar of Graphics» inspirierte
Bibliotheken wie ggplot, plotnine, Altair erlauben
einfach, grafische Grundelemente wie Achsen und
Glyphen eines Diagramms zu gestalten
APIs
Python-Datenvisualisierung: APIs
Deklarative Grafik-APIs:
Von The Grammar of Graphics inspirierte Bibliotheken
wie ggplot2, plotnine, Altair erlauben einfach,
grafische Grundelemente wie Achsen und Glyphen eines
Diagramms zu gestalten
APIs
Python-Datenvisualisierung: APIs
Deklarative Daten-APIs:
HoloViews und GeoViews bieten eine deklarative und
kompositorische High-Level-APIs, die sich auf das
Kommentieren, Beschreiben und Arbeiten mit
visualisierbaren Daten konzentrieren.
APIs
Python-Datenvisualisierung: APIs
Deklarative Daten-APIs:
HoloViews und GeoViews bieten eine deklarative und
kompositorische High-Level-APIs, die sich auf das
Kommentieren, Beschreiben und Arbeiten mit
visualisierbaren Daten konzentrieren.
APIs
Zukunftsvision
Python-Datenvisualisierung: Zukunftsvision
• OpenGL wird durch WebGL abgelöst
• Große Daten → Vaex, Datashader
• Widget- und App-Unterstützung
• pandas.plot()-API ist De-facto-Standard für 

2D-Diagramme
Kontakt
www.cusy.io/veit
info@cusy.io
@cusyio
+CusyIo

Weitere ähnliche Inhalte

PPT
Multiple Intelligences Today Module 2 Audio
DOCX
Cuadro comparativo
PPTX
3d mit Python (PythonCamp)
PDF
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
PDF
Pandas und matplotlib im praktischen Einsatz
PDF
CKAN by Friedrich Lindenberg
PDF
Repository Usage Statistics and the Open Research Analytics Service
PDF
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Multiple Intelligences Today Module 2 Audio
Cuadro comparativo
3d mit Python (PythonCamp)
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Pandas und matplotlib im praktischen Einsatz
CKAN by Friedrich Lindenberg
Repository Usage Statistics and the Open Research Analytics Service
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia

Ähnlich wie Python-Bibliotheken zur Datenvisualisierung (20)

PPTX
ALTO, PAGE & Co. Formate für Volltexte
PPTX
Einführung in NoSQL-Datenbanken
ODP
Der Kölner UniversitätsGesamtkatalog - Praktischer Einsatz des KUG mit OpenBi...
PDF
Power BI Version 2.0
PDF
Drupal Austria Roadshow in Klagenfurt
PPTX
Digitalisate kuratieren mit KI - von unstrukturierten Daten zu strukturierten...
PPTX
Daten natuerlich modellieren und verarbeiten mit Neo4j
PDF
amsl - Ergebnispräsentation der EFRE-Förderphase
PDF
Programmierung Algorithmen Und Datenstrukturen Photographer
PPTX
Azure WorkshopPart1 Intro
PDF
A fool with a tool is still a fool - Plone Tagung 2025 in Koblenz
PPTX
Überblick zum DFG-Projekt OCR-D
PPT
2006 - Basta!: Web 2.0 mit asp.net 2.0
PPT
Fachliche Vernetzung von Repositories auf europäischer Ebene - das Beispiel N...
PPT
Python, Plone und Zope in der Luft- und Raumfahrtforschung
PDF
Icinga 2009 at Nagios Workshop
PDF
Warum gRPC? – und wie in Python implementieren?
PPT
Python in der Luft- und Raumfahrt
PDF
Schweine latein-vortrag
ALTO, PAGE & Co. Formate für Volltexte
Einführung in NoSQL-Datenbanken
Der Kölner UniversitätsGesamtkatalog - Praktischer Einsatz des KUG mit OpenBi...
Power BI Version 2.0
Drupal Austria Roadshow in Klagenfurt
Digitalisate kuratieren mit KI - von unstrukturierten Daten zu strukturierten...
Daten natuerlich modellieren und verarbeiten mit Neo4j
amsl - Ergebnispräsentation der EFRE-Förderphase
Programmierung Algorithmen Und Datenstrukturen Photographer
Azure WorkshopPart1 Intro
A fool with a tool is still a fool - Plone Tagung 2025 in Koblenz
Überblick zum DFG-Projekt OCR-D
2006 - Basta!: Web 2.0 mit asp.net 2.0
Fachliche Vernetzung von Repositories auf europäischer Ebene - das Beispiel N...
Python, Plone und Zope in der Luft- und Raumfahrtforschung
Icinga 2009 at Nagios Workshop
Warum gRPC? – und wie in Python implementieren?
Python in der Luft- und Raumfahrt
Schweine latein-vortrag
Anzeige

Mehr von cusy GmbH (10)

PDF
Versionskontrolle in Machine-Learning-Projekten
PDF
About cusy
PDF
Continuous Everything
PDF
Opensource Search Engines
PDF
Cusy GSA-Alternativen
PDF
Sicherheitsrichtlinien für Linux-Workstations
PDF
Quo vadis-devops-nuernberg
PDF
Quo vadis DevOps
PDF
Devops ohne root
PDF
Cusy Developer-Baukasten
Versionskontrolle in Machine-Learning-Projekten
About cusy
Continuous Everything
Opensource Search Engines
Cusy GSA-Alternativen
Sicherheitsrichtlinien für Linux-Workstations
Quo vadis-devops-nuernberg
Quo vadis DevOps
Devops ohne root
Cusy Developer-Baukasten
Anzeige

Python-Bibliotheken zur Datenvisualisierung