SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
Open Data:
Datenmanagement und Visualisierung
Daten einbinden in D3.js und Anpassen
von bestehenden D3.js Code Snippets
Termin 8, 10. April 2014
Dr. Matthias Stürmer und Prof. Dr. Thomas Myrach
Universität Bern, Institut für Wirtschaftsinformatik
Abteilung Informationsmanagement
Forschungsstelle Digitale Nachhaltigkeit
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
2
Agenda
1. Theorie: Daten einbinden in D3.js (Kapitel 5)
2. Praxis: Anpassen bestehender D3.js Snippets
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
3
Interactive Data Visualization for the Web
Chapter 5. Data:
> Data is an extremely broad term, only
slightly less vague than the nearly all-
encompassinginformation. What is data?
(What isn’t data?) What kinds of data are
there, and what can we use with D3?
> http://chimera.labs.oreilly.com/books/1230
000000345/ch05.html
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
4
Chaining Methods
d3.select("body").append("p").text("New paragraph!");
ist der gleiche Code wie
d3.select("body")
.append("p")
.text("New paragraph!");
ist der gleiche Code wie
var body = d3.select("body");
var p = body.append("p");
p.text("New paragraph!");
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
5
Chaining Methods
d3.select("body").append("p").text("New paragraph!");
D3 References the D3 object, so we can access its
methods. Our D3 adventure begins here.
.select("body") Give the select() method a CSS selector as input, and it
will return a reference to the first element in the DOM
that matches.
.append("p") append() creates whatever new DOM element you
specify and appends it to the end (but just inside) of
whatever selection it’s acting on. Finally, append() hands
off a reference to the new element it just created.
.text("New paragraph!") text() takes a string and inserts it between the opening
and closing tags of the current selection.
; The all-important semicolon indicates the end of this line
of code. Chain over.
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
6
d3.select("body").selectAll("p")
.data(dataset)
.enter()
.append("p")
.text("New paragraph!");
Binding Data
d3.select("body") Finds the body in the DOM and hands off a reference to the next step in
the chain.
.selectAll("p") Selects all paragraphs in the DOM. Because none exist yet, this returns
an empty selection. Think of this empty selection as representing the
paragraphs that will soon exist.
.data(dataset) Counts and parses our data values. There are five values in our array
called dataset, so everything past this point is executed five times, once
for each value.
.enter() To create new, data-bound elements, you must use enter(). This method
looks at the current DOM selection, and then at the data being handed to
it. If there are more data values than corresponding DOM elements, then
enter() creates a new placeholder element on which you can work your
magic. It then hands off a reference to this new placeholder to the next
step in the chain.
.append("p") Takes the empty placeholder selection created by enter() and appends a
p element into the DOM. Hooray! Then it hands off a reference to the
element it just created to the next step in the chain.
.text("New paragraph!") Takes the reference to the newly created p and inserts a text value.
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
7
Using Your Data
Die Testdaten:
var dataset = [ 5, 10, 15, 20, 25 ];
Anzeigen der Testdaten:
d3.select("body").selectAll("p")
.data(dataset)
.enter()
.append("p")
.text(function(d) {return "I can count up to " + d; });
Nur die letzte Zeile anpassen:
.style("color", function(d) {
if (d > 15) { //Threshold of 15
return "red";
} else {
return "black";
}
});
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
8
D3.js API Reference
Application Programming Interface von D3.js:
https://github.com/mbostock/d3/wiki/API-Reference
> Selections - manipulate elements in the current document.
> Transitions - interpolate attributes and styles smoothly over time.
> Arrays - manipulate arrays and objects with ease.
> Requests - load external data.
> Formatting - convert numbers, dates and other objects to strings.
> Localization - control locale-specific behavior, such as number formatting.
> Colors - parse and manipulate colors; work with color spaces.
> Namespaces - extend D3's support for XML namespaces.
> Math - miscellaneous mathematical functions.
> Internals - sundry utilities for extending D3.
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
9
Agenda
1. Theorie: Daten einbinden in D3.js (Kapitel 5)
2. Praxis: Anpassen bestehender D3.js Snippets
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
10
Anpassen bestehender D3.js Snippets
Vorgehen:
1. Welche Daten werden visualisiert? -> Bevölkerungswachstum
2. Welche Visualisierungsart macht Sinn? -> D3 Show Real
3. Wie muss ich die Daten anpassen? -> Transponieren
4. Was muss ich am Code Snippet anpassen -> Pfade
5. Was läuft schief? -> Debugging
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
11
Daten von opendata.admin.ch holen
Link: http://opendata.admin.ch/de/dataset/je-d-01-04-02-00-01
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
12
ODS Datei mit LibreOffice geöffnet
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
13
Export der Daten als UTF-8 CSV-Datei
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
14
Daten als CSV in Brackets öffnen
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
15
Daten bereinigen: Kommentare und
doppelte Zwischenräume löschen
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
16
Daten bereinigen: Hochkommas löschen
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
17
Anpassen bestehender D3.js Snippets
Vorgehen:
1. Welche Daten werden visualisiert? -> Bevölkerungswachstum
2. Welche Visualisierungsart macht Sinn? -> D3 Show Real
3. Wie muss ich die Daten anpassen? -> Transponieren
4. Was muss ich am Code Snippet anpassen -> Pfade
5. Was läuft schief? -> Debugging
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
18
D3.js Code Snippets
Link: https://github.com/mbostock/d3/wiki/Gallery
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
19
D3.js Code Snippets
Link: http://christopheviau.com/d3list/gallery.html
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
20
D3.js Code Snippets
Link: http://bl.ocks.org/mbostock
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
21
D3.js Code Snippets
Link: http://bost.ocks.org/mike/
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
22
Es gibt viele D3 Snippets im Internet...
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
23
Auswahl einer passenden Visualisierung
Link: http://bl.ocks.org/syntagmatic/3891711
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
24
Auswahl einer passenden Visualisierung:
D3 Show Reel
Link: http://bl.ocks.org/mbostock/1256572
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
25
Code und Datenformat von
D3 Show Reel analysieren
Link: http://bl.ocks.org/mbostock/1256572
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
26
Anpassen bestehender D3.js Snippets
Vorgehen:
1. Welche Daten werden visualisiert? -> Bevölkerungswachstum
2. Welche Visualisierungsart macht Sinn? -> D3 Show Real
3. Wie muss ich die Daten anpassen? -> Transponieren
4. Was muss ich am Code Snippet anpassen -> Pfade
5. Was läuft schief? -> Debugging
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
27
Daten in LibreOffice öffnen
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
28
Daten kopieren und transponieren
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
29
Anpassen bestehender D3.js Snippets
Vorgehen:
1. Welche Daten werden visualisiert? -> Bevölkerungswachstum
2. Welche Visualisierungsart macht Sinn? -> D3 Show Real
3. Wie muss ich die Daten anpassen? -> Transponieren
4. Was muss ich am Code Snippet anpassen -> Pfade
5. Was läuft schief? -> Debugging
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
30
Code Snippet in Bracket kopieren
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
31
Pfad zu D3.js Bibliothek anpassen
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
32
Pfad zu CSV-Daten anpassen
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
33
Pfad zu CSV-Daten anpassen
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
34
Anpassen bestehender D3.js Snippets
Vorgehen:
1. Welche Daten werden visualisiert? -> Bevölkerungswachstum
2. Welche Visualisierungsart macht Sinn? -> D3 Show Real
3. Wie muss ich die Daten anpassen? -> Transponieren
4. Was muss ich am Code Snippet anpassen -> Pfade
5. Was läuft schief? -> Debugging
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
35
A) Gar keine Darstellung -> Console
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
36
Fehler in der Beschriftung der Spalten
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
37
Fehler in der Beschriftung der Spalten
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
38
B) Fehlerhafte Darstellung
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
39
Falsches Datumsformat
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
40
Korrektes Datumsformat
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
41
Jetzt klappts!
FS 2014
Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets
42
Minimal-Anforderungen an die
Open Data App
1. Neuartige Daten aufbereiten und visualisieren
(Data Coach, Datenportal etc.)
2. Kreative Visualisierung, nicht bloss Balken etc.
3. Mindestens eine interaktive Funktion
(Mouse Click, Scroll Wheel, Buttons etc.)
4. Aufwand von rund 40 bis 50 Stunden pro Person
muss erkennbar sein
Programming Coaching von jetzt an in jeder
Vorlesung bis vorletzte Veranstaltung, 15. Mai 2014
Bitte Fragen bzw. Anliegen mitteilen!

Weitere ähnliche Inhalte

Ähnlich wie Open Data Vorlesung Termin 8: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets

Open Data Vorlesung Termin 9: Daten als Balken darstellen, Data Repositories ...
Open Data Vorlesung Termin 9: Daten als Balken darstellen, Data Repositories ...Open Data Vorlesung Termin 9: Daten als Balken darstellen, Data Repositories ...
Open Data Vorlesung Termin 9: Daten als Balken darstellen, Data Repositories ...Matthias Stürmer
 
DWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultDWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultTrivadis
 
News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015David Schneider
 
MongoDB für Java-Programmierer
MongoDB für Java-ProgrammiererMongoDB für Java-Programmierer
MongoDB für Java-ProgrammiererUwe Printz
 
MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)Uwe Printz
 
DACHNUG50 LeapTippsAndTricks.pdf
DACHNUG50 LeapTippsAndTricks.pdfDACHNUG50 LeapTippsAndTricks.pdf
DACHNUG50 LeapTippsAndTricks.pdfDNUG e.V.
 
“AT Internet Data Explorer Demo” von meinestadt.de
“AT Internet Data Explorer Demo” von meinestadt.de“AT Internet Data Explorer Demo” von meinestadt.de
“AT Internet Data Explorer Demo” von meinestadt.deAT Internet
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data KonnektivitätTrivadis
 
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human InferenceDataValueTalk
 
Data model mal anders
Data model mal andersData model mal anders
Data model mal andersMaxim Zaks
 
Google Analytics Konferenz 2019_Vom Reporting zu Insights_Maike Duhr (lunapar...
Google Analytics Konferenz 2019_Vom Reporting zu Insights_Maike Duhr (lunapar...Google Analytics Konferenz 2019_Vom Reporting zu Insights_Maike Duhr (lunapar...
Google Analytics Konferenz 2019_Vom Reporting zu Insights_Maike Duhr (lunapar...e-dialog GmbH
 
PrintTalk 2.0, XJDF & WebToPrint
PrintTalk 2.0, XJDF & WebToPrintPrintTalk 2.0, XJDF & WebToPrint
PrintTalk 2.0, XJDF & WebToPrintStefan Meissner
 
Sitzung 11
Sitzung 11Sitzung 11
Sitzung 11scuy
 
Open Data Vorlesung 2015: Linked Data
Open Data Vorlesung 2015: Linked DataOpen Data Vorlesung 2015: Linked Data
Open Data Vorlesung 2015: Linked DataMatthias Stürmer
 
SharePoint: Daten Integration externer Daten ganz einfach und vollständig
SharePoint: Daten Integration externer Daten ganz einfach und vollständigSharePoint: Daten Integration externer Daten ganz einfach und vollständig
SharePoint: Daten Integration externer Daten ganz einfach und vollständigLayer2
 
12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko
12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko
12c SQL Pattern Matching wann werde ich das benutzen Andrej PashchenkoDésirée Pfister
 
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...AboutYouGmbH
 
SharePoint 8 Tipps um besser zu Finden
SharePoint 8 Tipps um besser zu FindenSharePoint 8 Tipps um besser zu Finden
SharePoint 8 Tipps um besser zu FindenDavid Schneider
 

Ähnlich wie Open Data Vorlesung Termin 8: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets (20)

Open Data Vorlesung Termin 9: Daten als Balken darstellen, Data Repositories ...
Open Data Vorlesung Termin 9: Daten als Balken darstellen, Data Repositories ...Open Data Vorlesung Termin 9: Daten als Balken darstellen, Data Repositories ...
Open Data Vorlesung Termin 9: Daten als Balken darstellen, Data Repositories ...
 
DWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultDWH-Modellierung mit Data Vault
DWH-Modellierung mit Data Vault
 
News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015
 
MongoDB für Java-Programmierer
MongoDB für Java-ProgrammiererMongoDB für Java-Programmierer
MongoDB für Java-Programmierer
 
MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)
 
DACHNUG50 LeapTippsAndTricks.pdf
DACHNUG50 LeapTippsAndTricks.pdfDACHNUG50 LeapTippsAndTricks.pdf
DACHNUG50 LeapTippsAndTricks.pdf
 
“AT Internet Data Explorer Demo” von meinestadt.de
“AT Internet Data Explorer Demo” von meinestadt.de“AT Internet Data Explorer Demo” von meinestadt.de
“AT Internet Data Explorer Demo” von meinestadt.de
 
Präsentationen der Open Data Apps 2017
Präsentationen der Open Data Apps 2017Präsentationen der Open Data Apps 2017
Präsentationen der Open Data Apps 2017
 
UBA Data Cube
UBA Data CubeUBA Data Cube
UBA Data Cube
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data Konnektivität
 
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
 
Data model mal anders
Data model mal andersData model mal anders
Data model mal anders
 
Google Analytics Konferenz 2019_Vom Reporting zu Insights_Maike Duhr (lunapar...
Google Analytics Konferenz 2019_Vom Reporting zu Insights_Maike Duhr (lunapar...Google Analytics Konferenz 2019_Vom Reporting zu Insights_Maike Duhr (lunapar...
Google Analytics Konferenz 2019_Vom Reporting zu Insights_Maike Duhr (lunapar...
 
PrintTalk 2.0, XJDF & WebToPrint
PrintTalk 2.0, XJDF & WebToPrintPrintTalk 2.0, XJDF & WebToPrint
PrintTalk 2.0, XJDF & WebToPrint
 
Sitzung 11
Sitzung 11Sitzung 11
Sitzung 11
 
Open Data Vorlesung 2015: Linked Data
Open Data Vorlesung 2015: Linked DataOpen Data Vorlesung 2015: Linked Data
Open Data Vorlesung 2015: Linked Data
 
SharePoint: Daten Integration externer Daten ganz einfach und vollständig
SharePoint: Daten Integration externer Daten ganz einfach und vollständigSharePoint: Daten Integration externer Daten ganz einfach und vollständig
SharePoint: Daten Integration externer Daten ganz einfach und vollständig
 
12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko
12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko
12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko
 
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
 
SharePoint 8 Tipps um besser zu Finden
SharePoint 8 Tipps um besser zu FindenSharePoint 8 Tipps um besser zu Finden
SharePoint 8 Tipps um besser zu Finden
 

Mehr von Matthias Stürmer

Insights on Open Source and Inner Source
Insights on Open Source and Inner SourceInsights on Open Source and Inner Source
Insights on Open Source and Inner SourceMatthias Stürmer
 
Learnings aus 15 Jahren Open Source Aktivismus
Learnings aus 15 Jahren Open Source AktivismusLearnings aus 15 Jahren Open Source Aktivismus
Learnings aus 15 Jahren Open Source AktivismusMatthias Stürmer
 
Open Source Entwicklung - Kür, Pflicht oder Bürde für die Verwaltung?
Open Source Entwicklung - Kür, Pflicht oder Bürde für die Verwaltung?Open Source Entwicklung - Kür, Pflicht oder Bürde für die Verwaltung?
Open Source Entwicklung - Kür, Pflicht oder Bürde für die Verwaltung?Matthias Stürmer
 
Welche Digitalstrategie braucht ein Kanton?
Welche Digitalstrategie braucht ein Kanton?Welche Digitalstrategie braucht ein Kanton?
Welche Digitalstrategie braucht ein Kanton?Matthias Stürmer
 
Data Colonialism and Digital Sustainability: Problems and Solutions to Curren...
Data Colonialism and Digital Sustainability: Problems and Solutions to Curren...Data Colonialism and Digital Sustainability: Problems and Solutions to Curren...
Data Colonialism and Digital Sustainability: Problems and Solutions to Curren...Matthias Stürmer
 
Nachhaltige öffentliche Beschaffungen
Nachhaltige öffentliche BeschaffungenNachhaltige öffentliche Beschaffungen
Nachhaltige öffentliche BeschaffungenMatthias Stürmer
 
IntelliProcure - Nutzer, Medienecho, Features und Preise
IntelliProcure - Nutzer, Medienecho, Features und PreiseIntelliProcure - Nutzer, Medienecho, Features und Preise
IntelliProcure - Nutzer, Medienecho, Features und PreiseMatthias Stürmer
 
Vorstellung DINAcon, Parldigi, Forschungsstelle Digitale Nachhaltigkeit und C...
Vorstellung DINAcon, Parldigi, Forschungsstelle Digitale Nachhaltigkeit und C...Vorstellung DINAcon, Parldigi, Forschungsstelle Digitale Nachhaltigkeit und C...
Vorstellung DINAcon, Parldigi, Forschungsstelle Digitale Nachhaltigkeit und C...Matthias Stürmer
 
Das Konzept der digitalen Nachhaltigkeit
Das Konzept der digitalen NachhaltigkeitDas Konzept der digitalen Nachhaltigkeit
Das Konzept der digitalen NachhaltigkeitMatthias Stürmer
 
Kuenstliche Intelligenz in unserem Alltag
Kuenstliche Intelligenz in unserem AlltagKuenstliche Intelligenz in unserem Alltag
Kuenstliche Intelligenz in unserem AlltagMatthias Stürmer
 
Digital Open World - Vortrag an der 11. Büroautomationskonferenz der SIK
Digital Open World - Vortrag an der 11. Büroautomationskonferenz der SIKDigital Open World - Vortrag an der 11. Büroautomationskonferenz der SIK
Digital Open World - Vortrag an der 11. Büroautomationskonferenz der SIKMatthias Stürmer
 
Open Source Software: Einführung, Trends und öffentliche Beschaffung
Open Source Software: Einführung, Trends und öffentliche BeschaffungOpen Source Software: Einführung, Trends und öffentliche Beschaffung
Open Source Software: Einführung, Trends und öffentliche BeschaffungMatthias Stürmer
 
Nachhaltige Digitalisierung und digitale Nachhaltigkeit: Die zwei Seiten eine...
Nachhaltige Digitalisierung und digitale Nachhaltigkeit: Die zwei Seiten eine...Nachhaltige Digitalisierung und digitale Nachhaltigkeit: Die zwei Seiten eine...
Nachhaltige Digitalisierung und digitale Nachhaltigkeit: Die zwei Seiten eine...Matthias Stürmer
 
Open Data und Datenvisualisierungen
Open Data und DatenvisualisierungenOpen Data und Datenvisualisierungen
Open Data und DatenvisualisierungenMatthias Stürmer
 
Digitalisierung in Schweizer Städten
Digitalisierung in Schweizer StädtenDigitalisierung in Schweizer Städten
Digitalisierung in Schweizer StädtenMatthias Stürmer
 
Spirit of Bern 2018: Wie YouTube die Lehrkräfte und Uni-Dozierenden ablöst
Spirit of Bern 2018: Wie YouTube die Lehrkräfte und Uni-Dozierenden ablöstSpirit of Bern 2018: Wie YouTube die Lehrkräfte und Uni-Dozierenden ablöst
Spirit of Bern 2018: Wie YouTube die Lehrkräfte und Uni-Dozierenden ablöstMatthias Stürmer
 
Digitalisierung der öffentlichen Verwaltung - Ziele, Chancen, Perspektiven, R...
Digitalisierung der öffentlichen Verwaltung - Ziele, Chancen, Perspektiven, R...Digitalisierung der öffentlichen Verwaltung - Ziele, Chancen, Perspektiven, R...
Digitalisierung der öffentlichen Verwaltung - Ziele, Chancen, Perspektiven, R...Matthias Stürmer
 

Mehr von Matthias Stürmer (20)

Insights on Open Source and Inner Source
Insights on Open Source and Inner SourceInsights on Open Source and Inner Source
Insights on Open Source and Inner Source
 
Learnings aus 15 Jahren Open Source Aktivismus
Learnings aus 15 Jahren Open Source AktivismusLearnings aus 15 Jahren Open Source Aktivismus
Learnings aus 15 Jahren Open Source Aktivismus
 
Open Source Entwicklung - Kür, Pflicht oder Bürde für die Verwaltung?
Open Source Entwicklung - Kür, Pflicht oder Bürde für die Verwaltung?Open Source Entwicklung - Kür, Pflicht oder Bürde für die Verwaltung?
Open Source Entwicklung - Kür, Pflicht oder Bürde für die Verwaltung?
 
Welche Digitalstrategie braucht ein Kanton?
Welche Digitalstrategie braucht ein Kanton?Welche Digitalstrategie braucht ein Kanton?
Welche Digitalstrategie braucht ein Kanton?
 
Data Colonialism and Digital Sustainability: Problems and Solutions to Curren...
Data Colonialism and Digital Sustainability: Problems and Solutions to Curren...Data Colonialism and Digital Sustainability: Problems and Solutions to Curren...
Data Colonialism and Digital Sustainability: Problems and Solutions to Curren...
 
Nachhaltige öffentliche Beschaffungen
Nachhaltige öffentliche BeschaffungenNachhaltige öffentliche Beschaffungen
Nachhaltige öffentliche Beschaffungen
 
IntelliProcure - Nutzer, Medienecho, Features und Preise
IntelliProcure - Nutzer, Medienecho, Features und PreiseIntelliProcure - Nutzer, Medienecho, Features und Preise
IntelliProcure - Nutzer, Medienecho, Features und Preise
 
Vorstellung DINAcon, Parldigi, Forschungsstelle Digitale Nachhaltigkeit und C...
Vorstellung DINAcon, Parldigi, Forschungsstelle Digitale Nachhaltigkeit und C...Vorstellung DINAcon, Parldigi, Forschungsstelle Digitale Nachhaltigkeit und C...
Vorstellung DINAcon, Parldigi, Forschungsstelle Digitale Nachhaltigkeit und C...
 
Das Konzept der digitalen Nachhaltigkeit
Das Konzept der digitalen NachhaltigkeitDas Konzept der digitalen Nachhaltigkeit
Das Konzept der digitalen Nachhaltigkeit
 
Kuenstliche Intelligenz in unserem Alltag
Kuenstliche Intelligenz in unserem AlltagKuenstliche Intelligenz in unserem Alltag
Kuenstliche Intelligenz in unserem Alltag
 
Digitale Nachhaltigkeit
Digitale NachhaltigkeitDigitale Nachhaltigkeit
Digitale Nachhaltigkeit
 
Digital Open World - Vortrag an der 11. Büroautomationskonferenz der SIK
Digital Open World - Vortrag an der 11. Büroautomationskonferenz der SIKDigital Open World - Vortrag an der 11. Büroautomationskonferenz der SIK
Digital Open World - Vortrag an der 11. Büroautomationskonferenz der SIK
 
Fake News und E-Voting
Fake News und E-VotingFake News und E-Voting
Fake News und E-Voting
 
Open Source Software: Einführung, Trends und öffentliche Beschaffung
Open Source Software: Einführung, Trends und öffentliche BeschaffungOpen Source Software: Einführung, Trends und öffentliche Beschaffung
Open Source Software: Einführung, Trends und öffentliche Beschaffung
 
Nachhaltige Digitalisierung und digitale Nachhaltigkeit: Die zwei Seiten eine...
Nachhaltige Digitalisierung und digitale Nachhaltigkeit: Die zwei Seiten eine...Nachhaltige Digitalisierung und digitale Nachhaltigkeit: Die zwei Seiten eine...
Nachhaltige Digitalisierung und digitale Nachhaltigkeit: Die zwei Seiten eine...
 
Open Data und Datenvisualisierungen
Open Data und DatenvisualisierungenOpen Data und Datenvisualisierungen
Open Data und Datenvisualisierungen
 
Open Data Beer bei der SBB
Open Data Beer bei der SBBOpen Data Beer bei der SBB
Open Data Beer bei der SBB
 
Digitalisierung in Schweizer Städten
Digitalisierung in Schweizer StädtenDigitalisierung in Schweizer Städten
Digitalisierung in Schweizer Städten
 
Spirit of Bern 2018: Wie YouTube die Lehrkräfte und Uni-Dozierenden ablöst
Spirit of Bern 2018: Wie YouTube die Lehrkräfte und Uni-Dozierenden ablöstSpirit of Bern 2018: Wie YouTube die Lehrkräfte und Uni-Dozierenden ablöst
Spirit of Bern 2018: Wie YouTube die Lehrkräfte und Uni-Dozierenden ablöst
 
Digitalisierung der öffentlichen Verwaltung - Ziele, Chancen, Perspektiven, R...
Digitalisierung der öffentlichen Verwaltung - Ziele, Chancen, Perspektiven, R...Digitalisierung der öffentlichen Verwaltung - Ziele, Chancen, Perspektiven, R...
Digitalisierung der öffentlichen Verwaltung - Ziele, Chancen, Perspektiven, R...
 

Open Data Vorlesung Termin 8: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets

  • 1. Open Data: Datenmanagement und Visualisierung Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets Termin 8, 10. April 2014 Dr. Matthias Stürmer und Prof. Dr. Thomas Myrach Universität Bern, Institut für Wirtschaftsinformatik Abteilung Informationsmanagement Forschungsstelle Digitale Nachhaltigkeit
  • 2. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 2 Agenda 1. Theorie: Daten einbinden in D3.js (Kapitel 5) 2. Praxis: Anpassen bestehender D3.js Snippets
  • 3. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 3 Interactive Data Visualization for the Web Chapter 5. Data: > Data is an extremely broad term, only slightly less vague than the nearly all- encompassinginformation. What is data? (What isn’t data?) What kinds of data are there, and what can we use with D3? > http://chimera.labs.oreilly.com/books/1230 000000345/ch05.html
  • 4. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 4 Chaining Methods d3.select("body").append("p").text("New paragraph!"); ist der gleiche Code wie d3.select("body") .append("p") .text("New paragraph!"); ist der gleiche Code wie var body = d3.select("body"); var p = body.append("p"); p.text("New paragraph!");
  • 5. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 5 Chaining Methods d3.select("body").append("p").text("New paragraph!"); D3 References the D3 object, so we can access its methods. Our D3 adventure begins here. .select("body") Give the select() method a CSS selector as input, and it will return a reference to the first element in the DOM that matches. .append("p") append() creates whatever new DOM element you specify and appends it to the end (but just inside) of whatever selection it’s acting on. Finally, append() hands off a reference to the new element it just created. .text("New paragraph!") text() takes a string and inserts it between the opening and closing tags of the current selection. ; The all-important semicolon indicates the end of this line of code. Chain over.
  • 6. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 6 d3.select("body").selectAll("p") .data(dataset) .enter() .append("p") .text("New paragraph!"); Binding Data d3.select("body") Finds the body in the DOM and hands off a reference to the next step in the chain. .selectAll("p") Selects all paragraphs in the DOM. Because none exist yet, this returns an empty selection. Think of this empty selection as representing the paragraphs that will soon exist. .data(dataset) Counts and parses our data values. There are five values in our array called dataset, so everything past this point is executed five times, once for each value. .enter() To create new, data-bound elements, you must use enter(). This method looks at the current DOM selection, and then at the data being handed to it. If there are more data values than corresponding DOM elements, then enter() creates a new placeholder element on which you can work your magic. It then hands off a reference to this new placeholder to the next step in the chain. .append("p") Takes the empty placeholder selection created by enter() and appends a p element into the DOM. Hooray! Then it hands off a reference to the element it just created to the next step in the chain. .text("New paragraph!") Takes the reference to the newly created p and inserts a text value.
  • 7. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 7 Using Your Data Die Testdaten: var dataset = [ 5, 10, 15, 20, 25 ]; Anzeigen der Testdaten: d3.select("body").selectAll("p") .data(dataset) .enter() .append("p") .text(function(d) {return "I can count up to " + d; }); Nur die letzte Zeile anpassen: .style("color", function(d) { if (d > 15) { //Threshold of 15 return "red"; } else { return "black"; } });
  • 8. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 8 D3.js API Reference Application Programming Interface von D3.js: https://github.com/mbostock/d3/wiki/API-Reference > Selections - manipulate elements in the current document. > Transitions - interpolate attributes and styles smoothly over time. > Arrays - manipulate arrays and objects with ease. > Requests - load external data. > Formatting - convert numbers, dates and other objects to strings. > Localization - control locale-specific behavior, such as number formatting. > Colors - parse and manipulate colors; work with color spaces. > Namespaces - extend D3's support for XML namespaces. > Math - miscellaneous mathematical functions. > Internals - sundry utilities for extending D3.
  • 9. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 9 Agenda 1. Theorie: Daten einbinden in D3.js (Kapitel 5) 2. Praxis: Anpassen bestehender D3.js Snippets
  • 10. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 10 Anpassen bestehender D3.js Snippets Vorgehen: 1. Welche Daten werden visualisiert? -> Bevölkerungswachstum 2. Welche Visualisierungsart macht Sinn? -> D3 Show Real 3. Wie muss ich die Daten anpassen? -> Transponieren 4. Was muss ich am Code Snippet anpassen -> Pfade 5. Was läuft schief? -> Debugging
  • 11. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 11 Daten von opendata.admin.ch holen Link: http://opendata.admin.ch/de/dataset/je-d-01-04-02-00-01
  • 12. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 12 ODS Datei mit LibreOffice geöffnet
  • 13. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 13 Export der Daten als UTF-8 CSV-Datei
  • 14. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 14 Daten als CSV in Brackets öffnen
  • 15. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 15 Daten bereinigen: Kommentare und doppelte Zwischenräume löschen
  • 16. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 16 Daten bereinigen: Hochkommas löschen
  • 17. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 17 Anpassen bestehender D3.js Snippets Vorgehen: 1. Welche Daten werden visualisiert? -> Bevölkerungswachstum 2. Welche Visualisierungsart macht Sinn? -> D3 Show Real 3. Wie muss ich die Daten anpassen? -> Transponieren 4. Was muss ich am Code Snippet anpassen -> Pfade 5. Was läuft schief? -> Debugging
  • 18. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 18 D3.js Code Snippets Link: https://github.com/mbostock/d3/wiki/Gallery
  • 19. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 19 D3.js Code Snippets Link: http://christopheviau.com/d3list/gallery.html
  • 20. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 20 D3.js Code Snippets Link: http://bl.ocks.org/mbostock
  • 21. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 21 D3.js Code Snippets Link: http://bost.ocks.org/mike/
  • 22. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 22 Es gibt viele D3 Snippets im Internet...
  • 23. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 23 Auswahl einer passenden Visualisierung Link: http://bl.ocks.org/syntagmatic/3891711
  • 24. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 24 Auswahl einer passenden Visualisierung: D3 Show Reel Link: http://bl.ocks.org/mbostock/1256572
  • 25. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 25 Code und Datenformat von D3 Show Reel analysieren Link: http://bl.ocks.org/mbostock/1256572
  • 26. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 26 Anpassen bestehender D3.js Snippets Vorgehen: 1. Welche Daten werden visualisiert? -> Bevölkerungswachstum 2. Welche Visualisierungsart macht Sinn? -> D3 Show Real 3. Wie muss ich die Daten anpassen? -> Transponieren 4. Was muss ich am Code Snippet anpassen -> Pfade 5. Was läuft schief? -> Debugging
  • 27. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 27 Daten in LibreOffice öffnen
  • 28. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 28 Daten kopieren und transponieren
  • 29. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 29 Anpassen bestehender D3.js Snippets Vorgehen: 1. Welche Daten werden visualisiert? -> Bevölkerungswachstum 2. Welche Visualisierungsart macht Sinn? -> D3 Show Real 3. Wie muss ich die Daten anpassen? -> Transponieren 4. Was muss ich am Code Snippet anpassen -> Pfade 5. Was läuft schief? -> Debugging
  • 30. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 30 Code Snippet in Bracket kopieren
  • 31. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 31 Pfad zu D3.js Bibliothek anpassen
  • 32. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 32 Pfad zu CSV-Daten anpassen
  • 33. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 33 Pfad zu CSV-Daten anpassen
  • 34. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 34 Anpassen bestehender D3.js Snippets Vorgehen: 1. Welche Daten werden visualisiert? -> Bevölkerungswachstum 2. Welche Visualisierungsart macht Sinn? -> D3 Show Real 3. Wie muss ich die Daten anpassen? -> Transponieren 4. Was muss ich am Code Snippet anpassen -> Pfade 5. Was läuft schief? -> Debugging
  • 35. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 35 A) Gar keine Darstellung -> Console
  • 36. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 36 Fehler in der Beschriftung der Spalten
  • 37. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 37 Fehler in der Beschriftung der Spalten
  • 38. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 38 B) Fehlerhafte Darstellung
  • 39. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 39 Falsches Datumsformat
  • 40. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 40 Korrektes Datumsformat
  • 41. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 41 Jetzt klappts!
  • 42. FS 2014 Open Data > 08: Daten einbinden in D3.js und Anpassen von bestehenden D3.js Code Snippets 42 Minimal-Anforderungen an die Open Data App 1. Neuartige Daten aufbereiten und visualisieren (Data Coach, Datenportal etc.) 2. Kreative Visualisierung, nicht bloss Balken etc. 3. Mindestens eine interaktive Funktion (Mouse Click, Scroll Wheel, Buttons etc.) 4. Aufwand von rund 40 bis 50 Stunden pro Person muss erkennbar sein Programming Coaching von jetzt an in jeder Vorlesung bis vorletzte Veranstaltung, 15. Mai 2014 Bitte Fragen bzw. Anliegen mitteilen!