SlideShare a Scribd company logo
D3, VISUALIZATIONS,
N’AT
Patrick M. Dudas
@pdudders
Who I am..
Data Visualization (Meetup)
Art
Data
Coding
UI/UX
Github: https://github.com/dudaspm/Pittsburgh-Data-Visualization
(And in this corner..) AI vs. IA
 Artificial
Intelligence
John
McCarthy
 Intelligence Amplification
Man-Computer Symbiosis
William Ross Ashby
J.C.R. Licklider
Data Mining Process
Infographic
Infographic, Model, or
Visualization
Model
http://fold.it/portal/info/about - University of Washington
Visualization
When Graphics Go Bad
7
 Challenger
January 28, 1986
Can Anyone Spot the Problem?
8
How About Now?
9
#1 Asked Question
 I have “this data.”
What visualization should I use?
 http://www.datavis.ca/gallery/evil-pies.php
Data
12
34
43
10
35
23
22
9
Data
0.06383
0.180851
0.228723
0.053191
0.18617
0.12234
0.117021
0.047872
Normalize
Visualization
?
Steamgraph, Sparklines, and
Treemaps
Hive Plots, Star Plots, and Parallel
Coordinates
Back to the #1 Asked Question
 I have “this data.”
What visualization should I use?
 Ask your users or experts
Edward Tufte
“With most visualizations and graphics, the main
focus is to take multiple dimensions of
information and project it on to a two-
dimension plot”
D3
How to Get to D3
HTML
Javascript/JQuery
XML SVG D3
HTML
<html>
<head>
<title>I am metadata</title>
<script src="http://d3js.org/d3.v3.min.js"></script>
</head>
<body>
the body of HTML
</body>
</html>
http://boxnumbertwo.com/D3Simple/1.0/example1.html
DIV
<html>
<head>
<title>I am metadata</title>
<script src="../d3/d3.min.js"></script>
</head>
<body>
<div id="visualization_here"></div>
</body>
</html>
Not Well Formatted HTML
<html>
<head>
<title>I am a webpage</title>
<script src="../d3/d3.min.js"></script>
</header>
<ody>
<div id="visualization_here"></div>
</body
</html>
XML (Must Be Well Formatted)
<?xml version="1.0"?>
<note>
<to>Dave</to>
<from>Jamie</from>
<heading>Reminder</heading>
<message>Don't forget me this
weekend!</message>
</note>
SVG
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="400px"
height="400px">
<polygon points="200,10 250,190 160,210" style="fill:lime;stroke-width:1"/>
</svg>
SVG vs. Canvas or Vector vs. Raster
 Canvas = Pixels
 Raster
 SVG
Points
Lines
Polygons
 Vector
D3 - http://d3js.org/
 Data Driven Documents
Enter, Update, Exit
Interactions
Transitions
 Big List of Examples (1900)
http://christopheviau.com/d3list/index.html
D3.js
 SVG, CSS, and HTML
 update
update your data
 enter
enter svg objects using that data (example6)
OR
 exit
remove svg using that data (example7)
 mouse events (example8)
 transitions (example9)
smoothly change data
 example10 – adding affordances and a little fun
Simple Exam of D3
 var circleData = [4, 8, 15, 16, 23, 42];
Bertin’s Retinal/Visual Variable
Adding Some Aesthetics
var color = d3.scale.category10();
newCircles.enter().append("circle")
.attr("cx", function(d) { return d*10; })
.attr("cy", function(d) { return d*10; })
.attr("r", function(d) { return d; })
.style("fill", function(d) { return color(d); });
http://boxnumbertwo.com/D3Simple/1.0/example7.html
https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-category10
http://boxnumbertwo.com/D3Simple/NetworkX/1.6/index.php?sizeOfGraph=60&Pro
babilityOfEdge=.03
Enter, Update, Exit
http://boxnumbertwo.com/D3Simple/1.0/example7.html
Change Blindness
 Minimizing changes in a scene to make visual changes more
noticeable.
Sometimes We Miss the
Change
 Change Blindness - phenomenon that occurs
when a person viewing a visual scene
apparently fails to detect large changes in the
scene (Wikipedia)
 http://www.csc.ncsu.edu/faculty/healey/PP/mo
vies/Dinner.gif
 http://www.csc.ncsu.edu/faculty/healey/PP/mo
vies/Airplane.gif
 http://www.csc.ncsu.edu/faculty/healey/PP/mo
vies/Chopper_Truck.gif
Smooooooth Transitions
newerCircles.exit()
.transition()
.duration(3000)
.attr("r", 0)
.remove();
http://boxnumbertwo.com/D3Simple/1.0/example9.ht
http://www.boxnumbertwo.com/PitterPatter/1.2/ml
Don Norman’s Design of Everyday
Things34
 Builds on the notion of affordances
 Affordance – "refers to the perceived and actual
properties of the thing, primarily those
fundamental properties that determine just how
the thing could possibly be used … Affordances
provide strong clues to the operations of things"
(Norman, 1988)
This can include objects or words/numbers!
Norman, D. A. (1988). The design of everyday things. New York, Doubleday
Affordance
Affordance Scenario 1
36
http://www.baddesigns.com
Trapped between the doors!
37
 She was walking from one building to the other
with a co-worker. They pulled the handles that
opened the doors and went down the walkway.
Upon reaching the other end they again pulled
the handles, but the doors wouldn't budge.
Assuming the doors were locked, they returned
to the doors they originally opened to enter the
walkway. But when they tried to pull open these
doors, they wouldn't open either. They were
trapped in the walkway between the two
buildings!
 My friend and her co-worker spent the next few
minutes trying to signal to people though the
windows in the buildings, but the people they
signaled seemed strangely reluctant to come to
the rescue. Finally, after trying the doors again,
they discovered they needed to push the doors
rather than pull them.
Let’s Add Some Affordances
newCircles.enter().append("circle")
.attr("cx", function(d) { return d*10; })
.attr("cy", function(d) { return d*10; })
.attr("r", function(d) { return d; })
.style("fill", function(d) { return color(d); })
.style("stroke-width", 0)
.style("stroke", "black")
.style("cursor", "pointer")
// on mouse-over, change the border of the given circle to 2
.on("mouseover", function() {d3.select(this).style("stroke-
width", 2)})
// on mouse-out, change the border back to the original (0)
.on("mouseout", function() {d3.select(this).style("stroke-
width", 0)})
http://boxnumbertwo.com/D3Simple/1.0/example10.html
Heatmap
40
Heat Map
41
Heat Map
Matrix + Layers + Color = Heatmap
redM.push(0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0)
redM.push(0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0)
redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
redM.push(0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0)
redM.push(0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0)
redM.push(0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0)
redM.push(0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0)
redM.push(0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0)
redM.push(0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0)
redM.push(0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0)
redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
http://boxnumbertwo.com/D3Simple/mario/standing.html
Chaining Transitions
var t0 = vis.transition().ease('quad-
in').selectAll("rect");
t0.style("fill", function(d,i) { return
marioColors[d[1][1]]; });
var t1 = t0.transition();
t1.style("fill", function(d,i) { return
marioColors[d[2][1]]; });
http://boxnumbertwo.com/D3Simple/mario/marioMoving.html
Javascript Timers + D3 =
Animation
var cloud_scale_1 = .8, cloud_translate_1 = [700,100];
setInterval(function(){moveCloud_1();},25);
var boo_2 = 0;
var cloud_scale_2 = .6, cloud_translate_2 = [0,300];
setInterval(function(){moveCloud_2();},30);
var boo_3 = 0;
var cloud_scale_3 = .7, cloud_translate_3 = [300,0];
setInterval(function(){moveCloud_3();},40);
var boo_4 = 0;
var cloud_scale_4 = .9, cloud_translate_4 = [500,200];
setInterval(function(){moveCloud_4();},55);
http://boxnumbertwo.com/D3Simple/6.1/
Playing With Data45
NHL
Pittsburgh Port Authority
Thank you!
 Contact:
dudaspm@gmail.com
Github:
 https://github.com/dudaspm/Pittsburgh-Data-
Visualization

More Related Content

Similar to Pittsburgh code and supply

Hadoop meetup 2014
Hadoop meetup 2014Hadoop meetup 2014
Hadoop meetup 2014
dudaspm
 
Scrollytelling
ScrollytellingScrollytelling
Scrollytelling
Baron Watts
 
Having fun with graphs, a short introduction to D3.js
Having fun with graphs, a short introduction to D3.jsHaving fun with graphs, a short introduction to D3.js
Having fun with graphs, a short introduction to D3.js
Michael Hackstein
 
[AI07] Revolutionizing Image Processing with Cognitive Toolkit
[AI07] Revolutionizing Image Processing with Cognitive Toolkit[AI07] Revolutionizing Image Processing with Cognitive Toolkit
[AI07] Revolutionizing Image Processing with Cognitive Toolkit
de:code 2017
 
D3: Easy and flexible data visualisation using web standards
D3: Easy and flexible data visualisation using web standardsD3: Easy and flexible data visualisation using web standards
D3: Easy and flexible data visualisation using web standards
Jos Dirksen
 
All I know about rsc.io/c2go
All I know about rsc.io/c2goAll I know about rsc.io/c2go
All I know about rsc.io/c2goMoriyoshi Koizumi
 
building_games_with_ruby_rubyconf
building_games_with_ruby_rubyconfbuilding_games_with_ruby_rubyconf
building_games_with_ruby_rubyconftutorialsruby
 
An introduction to CouchDB
An introduction to CouchDBAn introduction to CouchDB
An introduction to CouchDB
David Coallier
 
Supstat nyc subway
Supstat nyc subwaySupstat nyc subway
Supstat nyc subway
Vivian S. Zhang
 
Visualization of Big Data in Web Apps
Visualization of Big Data in Web AppsVisualization of Big Data in Web Apps
Visualization of Big Data in Web Apps
EPAM
 
Svcc 2013-d3
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3
Oswald Campesato
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
Oswald Campesato
 
Visual Exploration of Large Data sets with D3, crossfilter and dc.js
Visual Exploration of Large Data sets with D3, crossfilter and dc.jsVisual Exploration of Large Data sets with D3, crossfilter and dc.js
Visual Exploration of Large Data sets with D3, crossfilter and dc.js
Florian Georg
 
The Web map stack on Django
The Web map stack on DjangoThe Web map stack on Django
The Web map stack on Django
Paul Smith
 
Design engineering with d3+react with-speaker-notes
Design engineering with d3+react with-speaker-notesDesign engineering with d3+react with-speaker-notes
Design engineering with d3+react with-speaker-notes
Lorraine Sawicki
 
Dynamic Data Visualization With Chartkick
Dynamic Data Visualization With ChartkickDynamic Data Visualization With Chartkick
Dynamic Data Visualization With Chartkick
Dax Murray
 
Seeing Like Software
Seeing Like SoftwareSeeing Like Software
Seeing Like Software
Andrew Lovett-Barron
 
Scala bad practices, scala.io 2019
Scala bad practices, scala.io 2019Scala bad practices, scala.io 2019
Scala bad practices, scala.io 2019
Loïc Knuchel
 
Map, flatmap and reduce are your new best friends (javaone, svcc)
Map, flatmap and reduce are your new best friends (javaone, svcc)Map, flatmap and reduce are your new best friends (javaone, svcc)
Map, flatmap and reduce are your new best friends (javaone, svcc)
Chris Richardson
 

Similar to Pittsburgh code and supply (20)

Hadoop meetup 2014
Hadoop meetup 2014Hadoop meetup 2014
Hadoop meetup 2014
 
Scrollytelling
ScrollytellingScrollytelling
Scrollytelling
 
Having fun with graphs, a short introduction to D3.js
Having fun with graphs, a short introduction to D3.jsHaving fun with graphs, a short introduction to D3.js
Having fun with graphs, a short introduction to D3.js
 
[AI07] Revolutionizing Image Processing with Cognitive Toolkit
[AI07] Revolutionizing Image Processing with Cognitive Toolkit[AI07] Revolutionizing Image Processing with Cognitive Toolkit
[AI07] Revolutionizing Image Processing with Cognitive Toolkit
 
D3: Easy and flexible data visualisation using web standards
D3: Easy and flexible data visualisation using web standardsD3: Easy and flexible data visualisation using web standards
D3: Easy and flexible data visualisation using web standards
 
All I know about rsc.io/c2go
All I know about rsc.io/c2goAll I know about rsc.io/c2go
All I know about rsc.io/c2go
 
building_games_with_ruby_rubyconf
building_games_with_ruby_rubyconfbuilding_games_with_ruby_rubyconf
building_games_with_ruby_rubyconf
 
Learning d3
Learning d3Learning d3
Learning d3
 
An introduction to CouchDB
An introduction to CouchDBAn introduction to CouchDB
An introduction to CouchDB
 
Supstat nyc subway
Supstat nyc subwaySupstat nyc subway
Supstat nyc subway
 
Visualization of Big Data in Web Apps
Visualization of Big Data in Web AppsVisualization of Big Data in Web Apps
Visualization of Big Data in Web Apps
 
Svcc 2013-d3
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
 
Visual Exploration of Large Data sets with D3, crossfilter and dc.js
Visual Exploration of Large Data sets with D3, crossfilter and dc.jsVisual Exploration of Large Data sets with D3, crossfilter and dc.js
Visual Exploration of Large Data sets with D3, crossfilter and dc.js
 
The Web map stack on Django
The Web map stack on DjangoThe Web map stack on Django
The Web map stack on Django
 
Design engineering with d3+react with-speaker-notes
Design engineering with d3+react with-speaker-notesDesign engineering with d3+react with-speaker-notes
Design engineering with d3+react with-speaker-notes
 
Dynamic Data Visualization With Chartkick
Dynamic Data Visualization With ChartkickDynamic Data Visualization With Chartkick
Dynamic Data Visualization With Chartkick
 
Seeing Like Software
Seeing Like SoftwareSeeing Like Software
Seeing Like Software
 
Scala bad practices, scala.io 2019
Scala bad practices, scala.io 2019Scala bad practices, scala.io 2019
Scala bad practices, scala.io 2019
 
Map, flatmap and reduce are your new best friends (javaone, svcc)
Map, flatmap and reduce are your new best friends (javaone, svcc)Map, flatmap and reduce are your new best friends (javaone, svcc)
Map, flatmap and reduce are your new best friends (javaone, svcc)
 

Recently uploaded

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 

Recently uploaded (20)

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 

Pittsburgh code and supply

  • 3. Data Visualization (Meetup) Art Data Coding UI/UX Github: https://github.com/dudaspm/Pittsburgh-Data-Visualization
  • 4. (And in this corner..) AI vs. IA  Artificial Intelligence John McCarthy  Intelligence Amplification Man-Computer Symbiosis William Ross Ashby J.C.R. Licklider
  • 7. When Graphics Go Bad 7  Challenger January 28, 1986
  • 8. Can Anyone Spot the Problem? 8
  • 10. #1 Asked Question  I have “this data.” What visualization should I use?  http://www.datavis.ca/gallery/evil-pies.php Data 12 34 43 10 35 23 22 9 Data 0.06383 0.180851 0.228723 0.053191 0.18617 0.12234 0.117021 0.047872 Normalize Visualization ?
  • 12. Hive Plots, Star Plots, and Parallel Coordinates
  • 13. Back to the #1 Asked Question  I have “this data.” What visualization should I use?  Ask your users or experts
  • 14. Edward Tufte “With most visualizations and graphics, the main focus is to take multiple dimensions of information and project it on to a two- dimension plot”
  • 15. D3
  • 16. How to Get to D3 HTML Javascript/JQuery XML SVG D3
  • 17. HTML <html> <head> <title>I am metadata</title> <script src="http://d3js.org/d3.v3.min.js"></script> </head> <body> the body of HTML </body> </html> http://boxnumbertwo.com/D3Simple/1.0/example1.html
  • 18. DIV <html> <head> <title>I am metadata</title> <script src="../d3/d3.min.js"></script> </head> <body> <div id="visualization_here"></div> </body> </html>
  • 19. Not Well Formatted HTML <html> <head> <title>I am a webpage</title> <script src="../d3/d3.min.js"></script> </header> <ody> <div id="visualization_here"></div> </body </html>
  • 20. XML (Must Be Well Formatted) <?xml version="1.0"?> <note> <to>Dave</to> <from>Jamie</from> <heading>Reminder</heading> <message>Don't forget me this weekend!</message> </note>
  • 21. SVG <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="400px" height="400px"> <polygon points="200,10 250,190 160,210" style="fill:lime;stroke-width:1"/> </svg>
  • 22. SVG vs. Canvas or Vector vs. Raster  Canvas = Pixels  Raster  SVG Points Lines Polygons  Vector
  • 23. D3 - http://d3js.org/  Data Driven Documents Enter, Update, Exit Interactions Transitions  Big List of Examples (1900) http://christopheviau.com/d3list/index.html
  • 24. D3.js  SVG, CSS, and HTML  update update your data  enter enter svg objects using that data (example6) OR  exit remove svg using that data (example7)  mouse events (example8)  transitions (example9) smoothly change data  example10 – adding affordances and a little fun
  • 25. Simple Exam of D3  var circleData = [4, 8, 15, 16, 23, 42];
  • 27. Adding Some Aesthetics var color = d3.scale.category10(); newCircles.enter().append("circle") .attr("cx", function(d) { return d*10; }) .attr("cy", function(d) { return d*10; }) .attr("r", function(d) { return d; }) .style("fill", function(d) { return color(d); }); http://boxnumbertwo.com/D3Simple/1.0/example7.html https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-category10 http://boxnumbertwo.com/D3Simple/NetworkX/1.6/index.php?sizeOfGraph=60&Pro babilityOfEdge=.03
  • 29. Change Blindness  Minimizing changes in a scene to make visual changes more noticeable.
  • 30. Sometimes We Miss the Change  Change Blindness - phenomenon that occurs when a person viewing a visual scene apparently fails to detect large changes in the scene (Wikipedia)  http://www.csc.ncsu.edu/faculty/healey/PP/mo vies/Dinner.gif  http://www.csc.ncsu.edu/faculty/healey/PP/mo vies/Airplane.gif  http://www.csc.ncsu.edu/faculty/healey/PP/mo vies/Chopper_Truck.gif
  • 31.
  • 32.
  • 34. Don Norman’s Design of Everyday Things34  Builds on the notion of affordances  Affordance – "refers to the perceived and actual properties of the thing, primarily those fundamental properties that determine just how the thing could possibly be used … Affordances provide strong clues to the operations of things" (Norman, 1988) This can include objects or words/numbers! Norman, D. A. (1988). The design of everyday things. New York, Doubleday
  • 37. Trapped between the doors! 37  She was walking from one building to the other with a co-worker. They pulled the handles that opened the doors and went down the walkway. Upon reaching the other end they again pulled the handles, but the doors wouldn't budge. Assuming the doors were locked, they returned to the doors they originally opened to enter the walkway. But when they tried to pull open these doors, they wouldn't open either. They were trapped in the walkway between the two buildings!  My friend and her co-worker spent the next few minutes trying to signal to people though the windows in the buildings, but the people they signaled seemed strangely reluctant to come to the rescue. Finally, after trying the doors again, they discovered they needed to push the doors rather than pull them.
  • 38. Let’s Add Some Affordances newCircles.enter().append("circle") .attr("cx", function(d) { return d*10; }) .attr("cy", function(d) { return d*10; }) .attr("r", function(d) { return d; }) .style("fill", function(d) { return color(d); }) .style("stroke-width", 0) .style("stroke", "black") .style("cursor", "pointer") // on mouse-over, change the border of the given circle to 2 .on("mouseover", function() {d3.select(this).style("stroke- width", 2)}) // on mouse-out, change the border back to the original (0) .on("mouseout", function() {d3.select(this).style("stroke- width", 0)}) http://boxnumbertwo.com/D3Simple/1.0/example10.html
  • 42. Matrix + Layers + Color = Heatmap redM.push(0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0) redM.push(0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0) redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) redM.push(0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0) redM.push(0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0) redM.push(0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0) redM.push(0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0) redM.push(0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0) redM.push(0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0) redM.push(0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0) redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) redM.push(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); http://boxnumbertwo.com/D3Simple/mario/standing.html
  • 43. Chaining Transitions var t0 = vis.transition().ease('quad- in').selectAll("rect"); t0.style("fill", function(d,i) { return marioColors[d[1][1]]; }); var t1 = t0.transition(); t1.style("fill", function(d,i) { return marioColors[d[2][1]]; }); http://boxnumbertwo.com/D3Simple/mario/marioMoving.html
  • 44. Javascript Timers + D3 = Animation var cloud_scale_1 = .8, cloud_translate_1 = [700,100]; setInterval(function(){moveCloud_1();},25); var boo_2 = 0; var cloud_scale_2 = .6, cloud_translate_2 = [0,300]; setInterval(function(){moveCloud_2();},30); var boo_3 = 0; var cloud_scale_3 = .7, cloud_translate_3 = [300,0]; setInterval(function(){moveCloud_3();},40); var boo_4 = 0; var cloud_scale_4 = .9, cloud_translate_4 = [500,200]; setInterval(function(){moveCloud_4();},55); http://boxnumbertwo.com/D3Simple/6.1/
  • 46. NHL
  • 48. Thank you!  Contact: dudaspm@gmail.com Github:  https://github.com/dudaspm/Pittsburgh-Data- Visualization