Pandas und matplotlib im praktischen Einsatz

16
Das EnArgus-System: Pandas und matplotlib im praktischen Einsatz Thomas Koch OrbiTeam Software GmbH & Co. KG PyBonn 27.02.2013, Bonn

description

Präsentation auf dem PyBonn UserGroup Meeting am 27.02.2013 - Thema "Scientific Computing" - mit Vorträgen zu pandas und matplotlib. Der Vortrag zeigt den praktischen Einsatz von pandas und matplotlib am Beispiel des Forschungsprojektes EnArgus.

Transcript of Pandas und matplotlib im praktischen Einsatz

Page 1: Pandas und matplotlib im praktischen Einsatz

Das EnArgus-System: Pandas und matplotlib im praktischen Einsatz

Thomas Koch OrbiTeam Software GmbH & Co. KG

PyBonn 27.02.2013, Bonn

Page 2: Pandas und matplotlib im praktischen Einsatz

Kurzvorstellung: EnArgus-Projekt

• Ziel: Entwicklung und Erprobung eines zentralen Informationssystems für Energieforschungs-vorhaben aus dem Bereich der Förderung durch Bund und Länder

• Zielgruppen: – Die interessierte Öffentlichkeit

• Überblick über Forschungsprojekte Einfache Suchfunktionen

– Die Politik: Ministerien & Projektträger • Was wird/wurde gefördert (inhaltliche Fragen) • Forschungstrends, Experten, Verteilung Fördermittel etc. Komplexe Recherche- und Visualisierungsfunktionen

27.02.2013 EnArgus@PyBonn 2

Page 3: Pandas und matplotlib im praktischen Einsatz

EnArgus: Teilsysteme

Für die Öffentlichkeit Für die interne Nutzung

EnArgus.public

• Einfache Bedienung

• Ansprechende Webseiten

• Eingeschränkter Zugriff

• Einfache Suchfunktionen

• Faceted Search

• Zugriff auf EnArgus.wiki

EnArgus.master

• Expertensuche

• Vollzugriff auf Vorhaben

• Hinzufügen von Inhalten

• Statistische Auswertungen

• Graphische Visualisierungen

• Suchen speichern & veröffentlichen

27.02.2013 EnArgus@PyBonn 3

Page 4: Pandas und matplotlib im praktischen Einsatz

Recherche-Cockpit

Energie-forschungs

-Wiki

BSCW Core

EnArgus-DB Index Dokumente

Ontologie Core

Ontologie-DB

Kooperations- Unterstützg.

Ontologie- Editor

Auswertung & Visualisierung

Suchanfragen & -ergebnisse

Wiki-Texte

Wiki Core

EnArgus Systemarchitektur

27.02.2013 EnArgus@PyBonn 4

Page 5: Pandas und matplotlib im praktischen Einsatz

ENARGUS.MASTER Auswertungen

• Akkumulation der Suchergebnisse

– z.B. Fragestellung: Verteilung der Förderkosten über die Jahre

• Technik

– pandas,matplotlib

27.02.2013 EnArgus@PyBonn 5

Page 6: Pandas und matplotlib im praktischen Einsatz

Recherche-Cockpit

Ziele: – Nach der Suche soll Ergebnisanalyse möglich sein:

• Gruppierung, Summierung und andere Auswertungsfunktionen

• Auswahl der Daten soll durch den Benutzer erfolgen

– Visualisierung der Analyseergebnisse gewünscht • Visualisierung in Form von Kuchen- und Balkendiagrammen

• Auswahl der Darstellung soll durch den Benutzer erfolgen

27.02.2013 EnArgus@PyBonn 6

Recherche-Workflow:

Suchen Filtern & Sortieren

Auswertung Visualisierung

Page 7: Pandas und matplotlib im praktischen Einsatz

Gruppierung & Aggregation

• Gruppierung: unabhängige Variable x – Zeit (Projektlaufzeit nach Jahren, Monaten)

– Organisation (Zuwendungsempfänger)

– Vorhaben (Menge von Vorhaben)

– …

• Aggregation: abhängige Variable y = f(x) – Summe (Fördersummen der Vorhaben)

– Anzahl (Anzahl von Projekten/Organisationen)

– Minimum oder Maximum

– …

27.02.2013 EnArgus@PyBonn 7

Page 8: Pandas und matplotlib im praktischen Einsatz

GUI: Formular für Auswertung

Auswahl der Felder, Gruppierung und Darstellung

27.02.2013 EnArgus@PyBonn 8

Page 9: Pandas und matplotlib im praktischen Einsatz

Visualisierung(en)

27.02.2013 EnArgus@PyBonn 9

Page 10: Pandas und matplotlib im praktischen Einsatz

Einsatzbereiche von Pandas (im EA-Projekt)

• Pandas – DataFrames: N-dimensionale Arrays

(Speicherung der Suchergebnisse für Auswertung)

– DataFrame Indexing , z.B. einfacher Zugriff auf "Top 10": data = data[:10]

– Sortierung nach bestimmten Werten: data.sort(on)

– Statistische Methoden zur Akkumulation: data.mean(), data.sum(), data.count()

– Anwendung einer Funktion auf einen DataFrame: data.apply(lambda x: 100.*x/total)

– Gruppierung nach einer Spalte: data.groupby(column)

– CSV-Export: data.to_csv(filename, ...)

– … 27.02.2013 EnArgus@PyBonn 10

Page 11: Pandas und matplotlib im praktischen Einsatz

Einsatzbereiche von Matplotlib (im EA-Projekt)

• Matplotlib – Integration von pandas mit der matplotlib library zur

Anzeige von Daten in Graphen

– Series und DataFrame haben jeweils eine plot()-Methode

– erzeugt Graphen auf Basis der vorliegenden Daten

– Übergabe von Anzeige-Details: data.plot(ax=axis, color='blue')

data.plot(kind='bar', ax=axis)

– Ausgabe am Schirm oder in Datei: figure = plt.figure()

plt.savefig(outputfile)

27.02.2013 EnArgus@PyBonn 11

Page 12: Pandas und matplotlib im praktischen Einsatz

Demo

Demonstration EnArgus: Recherche-Cockpit

Page 13: Pandas und matplotlib im praktischen Einsatz

Bibliotheken im Einsatz

• Numpy, Pandas, Matplotlib – Statistische Auswertungen und Visualisierung

(Teil der Pydata Familie)

• GraphViz, pydot – Darstellung von Graphen der Suchanfrage (query)

• PyLucene – Volltextsuche, Facetten

• JPype – Anbindung an Java-Bibliotheken

(hier: Protegé)

27.02.2013 EnArgus@PyBonn 13

Page 14: Pandas und matplotlib im praktischen Einsatz

Tipps & Tricks

• Matplotlib allgemein – matplotlib erwartet unicode! – Web-GUI: matplotlib muss angewiesen werden,

kein display zu verwenden: matplotlib.use("Agg")

• Matplotlib Design – matplotlib lässt sich auch "anhübschen" bzw. stylen: – einfach: Fonts & Farben:

matplotlib.rcParams.update({'font.family':“Arial“, 'font.size': 12,))

– etwas aufwändiger: schickes Design • z.B. Schatten und Farbverläufe http://ganwellresource.blogspot.de/2012/12/customize-matplotlib-plots.html

• oder auch comic-Style (XKCD): http://jakevdp.github.com/blog/2012/10/07/xkcd-style-plots-in-matplotlib/

27.02.2013 EnArgus@PyBonn 14

Page 15: Pandas und matplotlib im praktischen Einsatz

Weitere Details zu EnArgus®

• Nationales Forschungsvorhaben – Partner: aus Energieforschung und Informatik

• Fraunhofer FIT, FKIE, UMSICHT und ISI • Forschungszentrum Jülich • Ruhr-Universität Bochum • OrbiTeam Software

– Gefördert durch BMWi • Bundesministerium für Wirtschaft

und Technologie • 5. Energieforschungsprogramm

der Bundesregierung • 2 Jahre Laufzeit

(Juli 2011 bis Juni 2013)

– Mehr Infos: Vortrag auf der PyCon 2012: https://2012.de.pycon.org/programm/schedule/sessions/21/

27.02.2013 EnArgus@PyBonn 15

Page 16: Pandas und matplotlib im praktischen Einsatz

Diskussion/Fragen

Kontakt für weitere Fragen

[email protected]

• @tomy_koch

Mehr Infos zum Projekt

• www.enargus.de

27.02.2013 EnArgus@PyBonn 16

?