Datenvisualisierung für Journalisten

und Blogger und weil es fetzt!

~ Paul Balzer ~

Warum visualisieren?

The Power of Visual Communication Infographic via Wyzowl

Warum visualisieren?

Infographic by- GO Gulf Web Design Dubai Company

Was ist Datenjournalismus?

Datenjournalismus (englisch data driven journalism, DDJ) ist eine Form des Online-Journalismus.

Gemäß der Open-Data-Idee bedeutet Datenjournalismus nicht nur die Recherche in Datenbanken, sondern die Sammlung, Aufbereitung, Analyse und Publikation öffentlich zugänglicher Informationen sowie ihre Verarbeitung in klassischen journalistischen Darstellungsformen.

Quelle: Wikipedia

Datenjournalismus-Portale

Roadmap heute

  • Welche Tools brauche ich?
  • Wie bekomme ich das auf meinem PC/Mac zum laufen?
  • Daten, was ist das? Exkurs zu XLS, CSV, JSON
  • Was sind APIs, wie kommunizieren Rechner?
  • Woher bekomme ich Daten?
  • Wie bereite ich Daten auf?
  • Diagramme erstellen
  • Export in Printqualität
  • Export für Onlineangebote

Welche Tools brauche ich?

Why?

Es gibt unendlich viele Tools, die eingesetzt werden können. Wir beschränken uns auf eine gaaaanz kleine Auswahl!

  • Python 2.7 mit Zusatzpaketen:
  • Pandas (zum Datenhandling)
  • Matplotlib (zur Darstellung)
  • requests (zur Kommunikation mit APIs)
  • mpld3 (für interaktive Onlinegrafiken)

mehr Auswahl:

Welche Tools brauche ich?

Wir machen keine 1 Click Solution! :(

[1 Click] <========================|==> [Individuell]

Python Distribution Conda: http://continuum.io/downloads

und den Paketmanager PIP: http://pip.readthedocs.org/en/latest/installing.html

Wie bekomme ich das auf meinem PC/Mac zum laufen?

Daten, was ist das?

11110001001000000

Unter Daten versteht man im Allgemeinen: Angaben, Werte oder formulierbare Befunde, die durch Messung, Beobachtung u. a. gewonnen wurden.

Typische Formate:

  • CSV (Comma Seperated Value Datei)
  • JSON (JavaScript Object Notation Datei)
  • XML (Extensible Markup Language Datei)

alles Textdateien!

Beispiel: CSV (auch Excel)

Herausgeber,Nummer,Deckung,Waehrung,Name,Vorname,maennlich,Hobby,Alter,Kind,Partner
Xema,1234-5678-9012-3456,2e+6,EURO,Mustermann,Max,true,Reiten,42,0,0

Im Alltag oft Probleme mit , oder . (Komma, Dezimalpunkt, Tausendertrennzeichen) Problematik!

Beispiel: JSON

{
  "Herausgeber": "Xema",
  "Nummer": "1234-5678-9012-3456",
  "Deckung": 2e+6,
  "Waehrung": "EURO",
  "Inhaber": {
    "Name": "Mustermann",
    "Vorname": "Max",
    "maennlich": true,
    "Hobbys": [ "Reiten", "Golfen", "Lesen" ],
    "Alter": 42,
    "Kinder": [],
    "Partner": null
  }
}

Bei komplexen Strukturen für den Menschen eher schwer zu lesen. Für den PC easy.

Beispiel: XML

<Kreditkarte
  Herausgeber="Xema"
  Nummer="1234-5678-9012-3456"
  Deckung="2e+6"
  Waehrung="EURO">
  <Inhaber
    Name="Mustermann"
    Vorname="Max"
    maennlich="true"
    Alter="42"
    Partner="null">
    <Hobbys>
      <Hobby>Reiten</Hobby>
      <Hobby>Golfen</Hobby>
      <Hobby>Lesen</Hobby>
    </Hobbys>
    <Kinder />
  </Inhaber>
</Kreditkarte>

Bei komplexen Strukturen für den Menschen eher schwer zu lesen. Für den PC easy.

Was sind APIs, wie kommunizieren Rechner?

API (englisch application programming interface, wortwörtlich ‚Anwendungs­programmier­schnittstelle‘)

Beispiel: Google Distance Matrix API

Frage an die API:

http://maps.googleapis.com/maps/api/distancematrix/json?origins=Prager+Str+Dresden&destinations=Kamenzer+Str+Dresden&mode=bicycling&language=de-DE&sensor=false

Antwort der API:

{
   "destination_addresses" : [ "Kamenzer Straße, 01099 Dresden, Deutschland" ],
   "origin_addresses" : [ "Prager Straße, 01067 Dresden, Deutschland" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "3,8 km",
                  "value" : 3778
               },
               "duration" : {
                  "text" : "14 Minuten",
                  "value" : 855
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

Beispiel: OpenStreetMaps.org

Frage an die Overpass API:

<osm-script output="json" timeout="25">
  <query type="way">
    <has-kv k="leisure" v="park"/>
    <bbox-query e="13.7618887424469" n="51.074113200087204" s="51.06796492266171" w="13.752104043960571"/>
  </query>
  <print mode="body"/>
  <recurse type="down"/>
  <print mode="skeleton" order="quadtile"/>
</osm-script>

Antwort der API:

{
  "version": 0.6,
  "generator": "Overpass API",
  "osm3s": {
    "timestamp_osm_base": "2014-10-13T12:04:02Z",
    "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
  },
  "elements": [

{
  "type": "way",
  "id": 4383454,
  "nodes": [
    26750561,
    2972329680,
    369112324,
    3013620425,
    ...
      ],
  "tags": {
    "alt_name": "Alaunpark",
    "leisure": "park",
    "name": "Alaunplatz",
    "wheelchair": "yes",
    "wikipedia": "de:Alaunplatz"
  }
},

oder als GeoJSON

Matrix

Woher bekomme ich Daten?

Daten

http://blog.visual.ly/data-sources/

Matrix

Fangen wir an!

Meme

"Wir sehen im Thema Datenjournalismus einen ganz wichtigen Baustein in den Darstellungsformen, die uns zur Verfügung stehen – keine Mode-Erscheinung. Diese Skills werden wir durch immer wieder neue Projekte ausbauen und anwenden."

Sascha Venohr, Entwicklungsredakteur bei Zeit Online, über die Datenjournalismus-Strategie seiner Redaktion. Quelle

Weiter

Programmier Crashkurs für Journalisten - Digitaler Wandel

Visualisierungshilfen für den Datenjournalismus - Bachelorarbeit von Alexander Salenko