SlideShare ist ein Scribd-Unternehmen logo
Das EnArgus-System:
Pandas und matplotlib
im praktischen Einsatz
         Thomas Koch
  OrbiTeam Software GmbH & Co. KG

PyBonn 27.02.2013, Bonn
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
EnArgus: Teilsysteme
Für die Öffentlichkeit                   Für die interne Nutzung

              EnArgus.public                      EnArgus.master

• Einfache Bedienung                       • Expertensuche
• Ansprechende Webseiten                   • Vollzugriff auf Vorhaben
• Eingeschränkter Zugriff                  • Hinzufügen von Inhalten
• Einfache Suchfunktionen                  • Statistische Auswertungen
• Faceted Search                           • Graphische Visualisierungen
• Zugriff auf EnArgus.wiki                 • Suchen speichern &
                                             veröffentlichen


 27.02.2013                    EnArgus@PyBonn                          3
EnArgus
Systemarchitektur


 Auswertung &      Suchanfragen                                             Energie-
                                    Kooperations-          Ontologie-
 Visualisierung    & -ergebnisse
                                     Unterstützg.
                                                                           forschungs
                                                             Editor
       Recherche-Cockpit
                                                                              -Wiki


                     BSCW Core                            Ontologie Core   Wiki Core



    Index         EnArgus-DB       Dokumente               Ontologie-DB    Wiki-Texte




27.02.2013                               EnArgus@PyBonn                                4
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
Recherche-Cockpit
     Recherche-            Suchen
                                          Filtern &
                                                      Auswertung    Visualisierung
     Workflow:                            Sortieren



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
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
GUI: Formular für Auswertung
Auswahl der Felder, Gruppierung und
Darstellung




27.02.2013         EnArgus@PyBonn      8
Visualisierung(en)




27.02.2013         EnArgus@PyBonn   9
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
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
Demo

Demonstration EnArgus:
  Recherche-Cockpit
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
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
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
?      Diskussion/Fragen

Kontakt für weitere Fragen
  • koch@orbiteam.de
  • @tomy_koch

Mehr Infos zum Projekt


  • www.enargus.de


27.02.2013             EnArgus@PyBonn   16

Weitere ähnliche Inhalte

Ähnlich wie Pandas und matplotlib im praktischen Einsatz

BATbern53 ELCA Analyticsdatenhaltung in der Cloud
BATbern53 ELCA Analyticsdatenhaltung in der CloudBATbern53 ELCA Analyticsdatenhaltung in der Cloud
BATbern53 ELCA Analyticsdatenhaltung in der Cloud
BATbern
 
Präsentationen der 29 Studierenden-Apps der Open Data Vorlesung 2014
Präsentationen der 29 Studierenden-Apps der Open Data Vorlesung 2014Präsentationen der 29 Studierenden-Apps der Open Data Vorlesung 2014
Präsentationen der 29 Studierenden-Apps der Open Data Vorlesung 2014
Matthias Stürmer
 
Web-Tools für das Studium
Web-Tools für das StudiumWeb-Tools für das Studium
Web-Tools für das Studium
University St. Gallen
 
Webtools studium
Webtools studiumWebtools studium
Webtools studium
Elsy Zollikofer
 
Netd@ys 08/09 Workshop - "Von der kreativen Idee zum innovativen Projekt"
Netd@ys 08/09 Workshop - "Von der kreativen Idee zum innovativen Projekt"Netd@ys 08/09 Workshop - "Von der kreativen Idee zum innovativen Projekt"
Netd@ys 08/09 Workshop - "Von der kreativen Idee zum innovativen Projekt"
Stephan Hamberger
 
Daten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4jDaten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4j
Patrick Baumgartner
 
UBA Data Cube
UBA Data CubeUBA Data Cube
UBA Data Cube
Safe Software
 
Repository Usage Statistics and the Open Research Analytics Service
Repository Usage Statistics and the Open Research Analytics ServiceRepository Usage Statistics and the Open Research Analytics Service
Repository Usage Statistics and the Open Research Analytics Service
OpenAIRE
 
Medientage 2013: Die Zukunft der Suche
Medientage 2013: Die Zukunft der SucheMedientage 2013: Die Zukunft der Suche
Medientage 2013: Die Zukunft der Suche
Dirk Lewandowski
 
Drupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in KlagenfurtDrupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in Klagenfurt
dasjo
 
Flexible Listen mit React in TYPO3
Flexible Listen mit React in TYPO3Flexible Listen mit React in TYPO3
Flexible Listen mit React in TYPO3
Martin Alker
 
OpenAIRE guidelines for data and literature repositories webinar_28022017
OpenAIRE guidelines for data and literature repositories webinar_28022017OpenAIRE guidelines for data and literature repositories webinar_28022017
OpenAIRE guidelines for data and literature repositories webinar_28022017
Jessica Rex
 
UE in der agilen Produktentwicklung #iak10
UE in der agilen Produktentwicklung #iak10UE in der agilen Produktentwicklung #iak10
UE in der agilen Produktentwicklung #iak10
Sandra Griffel
 
DACHNUG50 Suchen in Notes.pdf
DACHNUG50 Suchen in Notes.pdfDACHNUG50 Suchen in Notes.pdf
DACHNUG50 Suchen in Notes.pdf
DNUG e.V.
 
Zum Social Media Erfolg mit AMPEL
Zum Social Media Erfolg mit AMPELZum Social Media Erfolg mit AMPEL
Zum Social Media Erfolg mit AMPEL
Stefan Evertz
 
Perspektiven eines Open Web Index
Perspektiven eines Open Web IndexPerspektiven eines Open Web Index
Perspektiven eines Open Web Index
Dirk Lewandowski
 
Ausgewählte Forschungsfragen im Bereich Suche
Ausgewählte Forschungsfragen im Bereich SucheAusgewählte Forschungsfragen im Bereich Suche
Ausgewählte Forschungsfragen im Bereich Suche
Dirk Lewandowski
 
MairDumont Switch to Elasticsearch
MairDumont Switch to ElasticsearchMairDumont Switch to Elasticsearch
MairDumont Switch to Elasticsearch
Big Data User Group Karlsruhe/Stuttgart
 
OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)
joergreichert
 
Relevance Assessment Tool - Ein Werkzeug zum Design von Retrievaltests sowie ...
Relevance Assessment Tool - Ein Werkzeug zum Design von Retrievaltests sowie ...Relevance Assessment Tool - Ein Werkzeug zum Design von Retrievaltests sowie ...
Relevance Assessment Tool - Ein Werkzeug zum Design von Retrievaltests sowie ...
Hamburg University of Applied Sciences (HAW)
 

Ähnlich wie Pandas und matplotlib im praktischen Einsatz (20)

BATbern53 ELCA Analyticsdatenhaltung in der Cloud
BATbern53 ELCA Analyticsdatenhaltung in der CloudBATbern53 ELCA Analyticsdatenhaltung in der Cloud
BATbern53 ELCA Analyticsdatenhaltung in der Cloud
 
Präsentationen der 29 Studierenden-Apps der Open Data Vorlesung 2014
Präsentationen der 29 Studierenden-Apps der Open Data Vorlesung 2014Präsentationen der 29 Studierenden-Apps der Open Data Vorlesung 2014
Präsentationen der 29 Studierenden-Apps der Open Data Vorlesung 2014
 
Web-Tools für das Studium
Web-Tools für das StudiumWeb-Tools für das Studium
Web-Tools für das Studium
 
Webtools studium
Webtools studiumWebtools studium
Webtools studium
 
Netd@ys 08/09 Workshop - "Von der kreativen Idee zum innovativen Projekt"
Netd@ys 08/09 Workshop - "Von der kreativen Idee zum innovativen Projekt"Netd@ys 08/09 Workshop - "Von der kreativen Idee zum innovativen Projekt"
Netd@ys 08/09 Workshop - "Von der kreativen Idee zum innovativen Projekt"
 
Daten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4jDaten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4j
 
UBA Data Cube
UBA Data CubeUBA Data Cube
UBA Data Cube
 
Repository Usage Statistics and the Open Research Analytics Service
Repository Usage Statistics and the Open Research Analytics ServiceRepository Usage Statistics and the Open Research Analytics Service
Repository Usage Statistics and the Open Research Analytics Service
 
Medientage 2013: Die Zukunft der Suche
Medientage 2013: Die Zukunft der SucheMedientage 2013: Die Zukunft der Suche
Medientage 2013: Die Zukunft der Suche
 
Drupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in KlagenfurtDrupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in Klagenfurt
 
Flexible Listen mit React in TYPO3
Flexible Listen mit React in TYPO3Flexible Listen mit React in TYPO3
Flexible Listen mit React in TYPO3
 
OpenAIRE guidelines for data and literature repositories webinar_28022017
OpenAIRE guidelines for data and literature repositories webinar_28022017OpenAIRE guidelines for data and literature repositories webinar_28022017
OpenAIRE guidelines for data and literature repositories webinar_28022017
 
UE in der agilen Produktentwicklung #iak10
UE in der agilen Produktentwicklung #iak10UE in der agilen Produktentwicklung #iak10
UE in der agilen Produktentwicklung #iak10
 
DACHNUG50 Suchen in Notes.pdf
DACHNUG50 Suchen in Notes.pdfDACHNUG50 Suchen in Notes.pdf
DACHNUG50 Suchen in Notes.pdf
 
Zum Social Media Erfolg mit AMPEL
Zum Social Media Erfolg mit AMPELZum Social Media Erfolg mit AMPEL
Zum Social Media Erfolg mit AMPEL
 
Perspektiven eines Open Web Index
Perspektiven eines Open Web IndexPerspektiven eines Open Web Index
Perspektiven eines Open Web Index
 
Ausgewählte Forschungsfragen im Bereich Suche
Ausgewählte Forschungsfragen im Bereich SucheAusgewählte Forschungsfragen im Bereich Suche
Ausgewählte Forschungsfragen im Bereich Suche
 
MairDumont Switch to Elasticsearch
MairDumont Switch to ElasticsearchMairDumont Switch to Elasticsearch
MairDumont Switch to Elasticsearch
 
OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)
 
Relevance Assessment Tool - Ein Werkzeug zum Design von Retrievaltests sowie ...
Relevance Assessment Tool - Ein Werkzeug zum Design von Retrievaltests sowie ...Relevance Assessment Tool - Ein Werkzeug zum Design von Retrievaltests sowie ...
Relevance Assessment Tool - Ein Werkzeug zum Design von Retrievaltests sowie ...
 

Mehr von Thomas Koch

Einfache Heimautomatisierung auf dem Raspberry Pi mit Python
Einfache Heimautomatisierung auf dem Raspberry Pi mit PythonEinfache Heimautomatisierung auf dem Raspberry Pi mit Python
Einfache Heimautomatisierung auf dem Raspberry Pi mit Python
Thomas Koch
 
CI Signal Light in less than 100 Line of Python Code
CI Signal Light in less than 100 Line of Python CodeCI Signal Light in less than 100 Line of Python Code
CI Signal Light in less than 100 Line of Python Code
Thomas Koch
 
CI-Ampel für Jenkins mit RaspberryPi und Python
CI-Ampel für Jenkins mit RaspberryPi und PythonCI-Ampel für Jenkins mit RaspberryPi und Python
CI-Ampel für Jenkins mit RaspberryPi und Python
Thomas Koch
 
Facettensuche mit Lucene und Solr
Facettensuche mit Lucene und SolrFacettensuche mit Lucene und Solr
Facettensuche mit Lucene und Solr
Thomas Koch
 
BSCW - Teamarbeit leicht gemacht
BSCW - Teamarbeit leicht gemachtBSCW - Teamarbeit leicht gemacht
BSCW - Teamarbeit leicht gemacht
Thomas Koch
 
Raspberry Pi und Python
Raspberry Pi und PythonRaspberry Pi und Python
Raspberry Pi und Python
Thomas Koch
 
Einführung in Raspberry Pi und GPIO
Einführung in Raspberry Pi und GPIOEinführung in Raspberry Pi und GPIO
Einführung in Raspberry Pi und GPIO
Thomas Koch
 
Python-IDEs - PyDev und Eclipse
Python-IDEs - PyDev und EclipsePython-IDEs - PyDev und Eclipse
Python-IDEs - PyDev und Eclipse
Thomas Koch
 
Volltextsuche mit Lucene und Solr
Volltextsuche mit Lucene und SolrVolltextsuche mit Lucene und Solr
Volltextsuche mit Lucene und Solr
Thomas Koch
 
PyLucene@PyCon DE 2011
PyLucene@PyCon DE 2011PyLucene@PyCon DE 2011
PyLucene@PyCon DE 2011
Thomas Koch
 
Getting Started with Dojo Toolkit
Getting Started with Dojo ToolkitGetting Started with Dojo Toolkit
Getting Started with Dojo Toolkit
Thomas Koch
 
Teamarbeit 2.0 (PTF 2008)
Teamarbeit 2.0 (PTF 2008) Teamarbeit 2.0 (PTF 2008)
Teamarbeit 2.0 (PTF 2008)
Thomas Koch
 
Suche und PyLucene
Suche und PyLuceneSuche und PyLucene
Suche und PyLucene
Thomas Koch
 

Mehr von Thomas Koch (13)

Einfache Heimautomatisierung auf dem Raspberry Pi mit Python
Einfache Heimautomatisierung auf dem Raspberry Pi mit PythonEinfache Heimautomatisierung auf dem Raspberry Pi mit Python
Einfache Heimautomatisierung auf dem Raspberry Pi mit Python
 
CI Signal Light in less than 100 Line of Python Code
CI Signal Light in less than 100 Line of Python CodeCI Signal Light in less than 100 Line of Python Code
CI Signal Light in less than 100 Line of Python Code
 
CI-Ampel für Jenkins mit RaspberryPi und Python
CI-Ampel für Jenkins mit RaspberryPi und PythonCI-Ampel für Jenkins mit RaspberryPi und Python
CI-Ampel für Jenkins mit RaspberryPi und Python
 
Facettensuche mit Lucene und Solr
Facettensuche mit Lucene und SolrFacettensuche mit Lucene und Solr
Facettensuche mit Lucene und Solr
 
BSCW - Teamarbeit leicht gemacht
BSCW - Teamarbeit leicht gemachtBSCW - Teamarbeit leicht gemacht
BSCW - Teamarbeit leicht gemacht
 
Raspberry Pi und Python
Raspberry Pi und PythonRaspberry Pi und Python
Raspberry Pi und Python
 
Einführung in Raspberry Pi und GPIO
Einführung in Raspberry Pi und GPIOEinführung in Raspberry Pi und GPIO
Einführung in Raspberry Pi und GPIO
 
Python-IDEs - PyDev und Eclipse
Python-IDEs - PyDev und EclipsePython-IDEs - PyDev und Eclipse
Python-IDEs - PyDev und Eclipse
 
Volltextsuche mit Lucene und Solr
Volltextsuche mit Lucene und SolrVolltextsuche mit Lucene und Solr
Volltextsuche mit Lucene und Solr
 
PyLucene@PyCon DE 2011
PyLucene@PyCon DE 2011PyLucene@PyCon DE 2011
PyLucene@PyCon DE 2011
 
Getting Started with Dojo Toolkit
Getting Started with Dojo ToolkitGetting Started with Dojo Toolkit
Getting Started with Dojo Toolkit
 
Teamarbeit 2.0 (PTF 2008)
Teamarbeit 2.0 (PTF 2008) Teamarbeit 2.0 (PTF 2008)
Teamarbeit 2.0 (PTF 2008)
 
Suche und PyLucene
Suche und PyLuceneSuche und PyLucene
Suche und PyLucene
 

Pandas und matplotlib im praktischen Einsatz

  • 1. Das EnArgus-System: Pandas und matplotlib im praktischen Einsatz Thomas Koch OrbiTeam Software GmbH & Co. KG PyBonn 27.02.2013, Bonn
  • 2. 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
  • 3. EnArgus: Teilsysteme Für die Öffentlichkeit Für die interne Nutzung EnArgus.public EnArgus.master • Einfache Bedienung • Expertensuche • Ansprechende Webseiten • Vollzugriff auf Vorhaben • Eingeschränkter Zugriff • Hinzufügen von Inhalten • Einfache Suchfunktionen • Statistische Auswertungen • Faceted Search • Graphische Visualisierungen • Zugriff auf EnArgus.wiki • Suchen speichern & veröffentlichen 27.02.2013 EnArgus@PyBonn 3
  • 4. EnArgus Systemarchitektur Auswertung & Suchanfragen Energie- Kooperations- Ontologie- Visualisierung & -ergebnisse Unterstützg. forschungs Editor Recherche-Cockpit -Wiki BSCW Core Ontologie Core Wiki Core Index EnArgus-DB Dokumente Ontologie-DB Wiki-Texte 27.02.2013 EnArgus@PyBonn 4
  • 5. 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
  • 6. Recherche-Cockpit Recherche- Suchen Filtern & Auswertung Visualisierung Workflow: Sortieren 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
  • 7. 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
  • 8. GUI: Formular für Auswertung Auswahl der Felder, Gruppierung und Darstellung 27.02.2013 EnArgus@PyBonn 8
  • 9. Visualisierung(en) 27.02.2013 EnArgus@PyBonn 9
  • 10. 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
  • 11. 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
  • 12. Demo Demonstration EnArgus: Recherche-Cockpit
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. ? Diskussion/Fragen Kontakt für weitere Fragen • koch@orbiteam.de • @tomy_koch Mehr Infos zum Projekt • www.enargus.de 27.02.2013 EnArgus@PyBonn 16