Kreatives Coding in Bonn

Gruppen-Startseite Diskussionen Agenda Dateien Mitglieder Beitreten

Zeichnen in Python, Diagramme und Open Data

In unserer Reihe Dienstags Coden lassen wir interaktive Geschichten jetzt erst einmal hinter uns. Was könnte ein spannendes, nächstes Thema sein? Ich bin über das aktuelle Kapitel Klimadiagramme im Erdkundebuch meiner Tochter auf Diagramme zeichnen mit Python gestoßen.

Das ist auch deshalb interessant, weil mein Ältester gerade in Excel mit Diagrammen kämpft. Ich finde ist immer wieder überraschend, dass auch oder gerade in großen Unternehmen oft versucht wird, mit einem Gummihammer Nägel einzuschlagen.

Anders als er können wir uns ein passendes Werkzeug für unsere Aufgabe aussuchen. In Python-Programmen wird gerne matplotlib für das Zeichnen von Diagrammen genutzt. Aber es gibt wie so oft in Pythonland viele Möglichkeiten, Dinge zu zeichnen:

  • Mit pygal lassen sich interaktive Diagramme erstellen, die ihr z.B. in Webseiten einbauen könnt
  • Für Zeichnungen allgemein, z.B. in interaktiven Spielen, gibt es pygamezero.
  • Einfache Schildkrötengrafiken erstellt man mit dem eingebauten turtle-Modul. Hier und hier sind deutschsprachige Anleitungen dazu.
  • Auch mit dem tkinter-Modul lassen sich interaktive Zeichnungen erstellen. Es ist in jeder Python-Installation vorhanden.

Doch zurück zu Klimadiagrammen. Ich habe da mal was gebaut ;) Die Datei Klimadiagramme.ipynb ist ein Jupyter-Notebook. Solche Notebooks sind Online-Dokumente, die ausführbare Pythonscripte enthalten. So kann ein erklärender Text mit Berechnungen und Diagrammen angereichert werden.

Das ist viel toller als Excel, wo Formeln in Zellen versteckt sind, es keine Versionsverwaltung gibt und nach kurzer Zeit eigentlich niemand mehr sagen kann, was genau dieses Excelblatt macht und warum es (nicht mehr) funktioniert. Ganz zu schweigen von den unterirdischen Möglichkeiten, in Excel Diagramme einzubinden.

Es gibt verschiedene Arten, solche Notebooks zu erstellen und anzuschauen. Ich habe das kostenlose Angebot Colab von Google genutzt.

Dieses Notebook ist leider viel zu kompliziert geworden, weil die Daten beim Deutschen Wetterdienst in einem komischen Format vorliegen und ich unbedingt Temperator und Niederschlag in einem einzelnen Diagramm zeichnen wollte. Bereitet man die Daten aber ein wenig auf und zeichnet das Ergebnis in zwei getrennte Diagramme, kommt man mit wenigen Zeilen Python aus und kann trotzdem aus den Daten des Deutschen Wetterdienstes für beliebige Messstationen auf der Welt automatisiert Klimadiagramme herstellen.

Für matplotlib gibt es auf deren Seiten ein ausführliches Tutorial, allerdings in Englisch. Ein deutsches Tutorial findest du hier.

Auch oder gerade weil sie nicht auf Python basieren, möchte ich sie wenigstens erwähnen: Starboard-Notebooks. Anders als Jupyter-Notebooks brauchen diese keine getrennte Python-Umgebung, sondern nutzen die Power, die in jedem Browser steckt: Die Web-Programmiersprache Javascript. Python (im Browser) wird aber inzwischen auch unterstützt. Starboard Notebooks können als Webseite heruntergeladen und in einem einfachen Webspace veröffentlicht werden.

Noch ein paar Worte zu Datenquellen. Seit ein paar Jahren gibt es den schönen Trend, dass Städte und Einrichtungen wie der DWD Daten maschinenlesbar als Open Data veröffentlichen. Hier ein paar Links:

    Wer sich mehr für Open Data interessiert, möchte vielleicht einmal zu einem Treffen der Open Knowledge Foundation gehen. Die Bonner Gruppe hat eine eigene Seite und trifft sich regelmäßig.

    Gestartet von Dr. Olav Schettler in Kreatives Coding in Bonn 26. Oktober 2021 11:15