how quick can we be? data visualization techniques for engineers

92
How quick can we be? (data visualization techniques for engineers)

Upload: avni-khatri

Post on 29-Jan-2018

3.331 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: How Quick Can We Be? Data Visualization Techniques for Engineers

How quick can we be? (data visualization techniques for engineers)

Page 2: How Quick Can We Be? Data Visualization Techniques for Engineers

Who we are

Page 3: How Quick Can We Be? Data Visualization Techniques for Engineers

Who we are

Alice Bonhomme-Biais

Page 4: How Quick Can We Be? Data Visualization Techniques for Engineers

Who we are

Alice Bonhomme-Biais Avni Khatri

Page 5: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 6: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 7: How Quick Can We Be? Data Visualization Techniques for Engineers

DATA

Page 8: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 9: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 10: How Quick Can We Be? Data Visualization Techniques for Engineers

OUR PROCESS

Page 11: How Quick Can We Be? Data Visualization Techniques for Engineers

Goals

Page 12: How Quick Can We Be? Data Visualization Techniques for Engineers

Goals1. Plot the number of people at each location

Page 13: How Quick Can We Be? Data Visualization Techniques for Engineers

Goals1. Plot the number of people at each location

2. Plot the percentage of women at each location

Page 14: How Quick Can We Be? Data Visualization Techniques for Engineers

Goals1. Plot the number of people at each location

2. Plot the percentage of women at each location

3. Plot two dimensions

Page 15: How Quick Can We Be? Data Visualization Techniques for Engineers

Goals1. Plot the number of people at each location

2. Plot the percentage of women at each location

3. Plot two dimensions

4. Clearly show the gender disparity

Page 16: How Quick Can We Be? Data Visualization Techniques for Engineers

Goals1. Plot the number of people at each location

2. Plot the percentage of women at each location

3. Plot two dimensions

4. Clearly show the gender disparity

5. Use the tool to visualize data for future RHoKs

Page 17: How Quick Can We Be? Data Visualization Techniques for Engineers

OPENHEATMAP

Page 19: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 20: How Quick Can We Be? Data Visualization Techniques for Engineers

TOOLS

Page 21: How Quick Can We Be? Data Visualization Techniques for Engineers

Non-programmatic tools

Page 22: How Quick Can We Be? Data Visualization Techniques for Engineers

Non-programmatic tools• OpenHeatMap

• Google Fusion Tables

• Google Charts

• Socrata

• ChartsBin

• Factual

Page 23: How Quick Can We Be? Data Visualization Techniques for Engineers

Non-programmatic tools• OpenHeatMap

• Google Fusion Tables

• Google Charts

• Socrata

• ChartsBin

• Factual

Page 24: How Quick Can We Be? Data Visualization Techniques for Engineers

Non-programmatic tools• OpenHeatMap

• Google Fusion Tables

• Google Charts

• Socrata

• ChartsBin

• Factual

Page 25: How Quick Can We Be? Data Visualization Techniques for Engineers

Programatic tools

Page 26: How Quick Can We Be? Data Visualization Techniques for Engineers

Programatic tools• Google Maps JS API

• Yahoo! Maps Web Services

• Bing Maps AJAX Control

• Google Charts Tools

Page 27: How Quick Can We Be? Data Visualization Techniques for Engineers

GOOGLE FUSION TABLES

Page 29: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 30: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 31: How Quick Can We Be? Data Visualization Techniques for Engineers

SOCRATA

Page 32: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 33: How Quick Can We Be? Data Visualization Techniques for Engineers

GOOGLE MAPS API

Page 34: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 35: How Quick Can We Be? Data Visualization Techniques for Engineers

function initialize() { var latlng = new google.maps.LatLng(41.850033, -87.6500523); var myOptions = { zoom: 3, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };

var map = new google.maps.Map( document.getElementById("map_canvas"), myOptions); }

Page 36: How Quick Can We Be? Data Visualization Techniques for Engineers

function initialize() { var latlng = new google.maps.LatLng(41.850033, -87.6500523); var myOptions = { zoom: 3, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };

var map = new google.maps.Map( document.getElementById("map_canvas"), myOptions); }

Page 37: How Quick Can We Be? Data Visualization Techniques for Engineers

function initialize() { var latlng = new google.maps.LatLng(41.850033, -87.6500523); var myOptions = { zoom: 3, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };

var map = new google.maps.Map( document.getElementById("map_canvas"), myOptions); }

Page 38: How Quick Can We Be? Data Visualization Techniques for Engineers

var locations = [ ["Aarhus, Denmark",56.162939,10.203921,10,20], ["Bangalore, India",12.971599,77.594563,217,11.98], ["Chicago, Illinois",41.878114,-87.629798,107,31.78], ["Nairobi, Kenya",1.283333,36.816667,33,6.06].......];

Page 39: How Quick Can We Be? Data Visualization Techniques for Engineers

var locations = [ ["Aarhus, Denmark",56.162939,10.203921,10,20], ["Bangalore, India",12.971599,77.594563,217,11.98], ["Chicago, Illinois",41.878114,-87.629798,107,31.78], ["Nairobi, Kenya",1.283333,36.816667,33,6.06].......];

Page 40: How Quick Can We Be? Data Visualization Techniques for Engineers

// add call to setMarkers in initialize function initialize() { ... setMarkers (map, locations); }

function setMarkers(map, markers) { ...

for (var i = 0; i < markers.length; i++) { markerLatLng = new google.maps.LatLng(markers[i][1],markers[i][2]);

marker = new google.maps.Marker({ position: markerLatLng, map: map, title: markers[i][0], zIndex: 1 ); } }

Page 41: How Quick Can We Be? Data Visualization Techniques for Engineers

// add call to setMarkers in initialize function initialize() { ... setMarkers (map, locations); }

function setMarkers(map, markers) { ... for (var i = 0; i < markers.length; i++) { markerLatLng = new google.maps.LatLng(markers[i][1],markers[i][2]);

marker = new google.maps.Marker({ position: markerLatLng, map: map, title: markers[i][0], zIndex: 1 ); } }

Page 42: How Quick Can We Be? Data Visualization Techniques for Engineers

// add call to setMarkers in initialize function initialize() { ... setMarkers (map, locations); }

function setMarkers(map, markers) { ... for (var i = 0; i < markers.length; i++) { markerLatLng = new google.maps.LatLng(markers[i][1],markers[i][2]);

marker = new google.maps.Marker({ position: markerLatLng, map: map, title: markers[i][0], zIndex: 1 ); } }

Page 43: How Quick Can We Be? Data Visualization Techniques for Engineers

function setMarkers(map, markers) { for (var i = 0; i < markers.length; i++) { ...

iwContent = "<span class=\”label\”>" + markers[i][0] + "</span><br/>" + "Number of People: " + markers[i][3] + "<br/>" + "% of Women: " + markers[i][4];

marker = new google.maps.Marker({ ... html: iwContent });

google.maps.event.addListener(marker, "click", function() {

infowindow.setContent(this.html); infowindow.open(map, this); }); } }

function initialize() { ... infowindow = new google.maps.InfoWindow({ content: "loading..." }); }

Page 44: How Quick Can We Be? Data Visualization Techniques for Engineers

function initialize() { ... infowindow = new google.maps.InfoWindow({ content: "loading..." }); }

function setMarkers(map, markers) { for (var i = 0; i < markers.length; i++) { ...

iwContent = "<span class=\”label\”>" + markers[i][0] + "</span><br/>" + "Number of People: " + markers[i][3] + "<br/>" + "% of Women: " + markers[i][4];

marker = new google.maps.Marker({ ... html: iwContent });

google.maps.event.addListener(marker, "click", function() {

infowindow.setContent(this.html); infowindow.open(map, this); }); } }

Page 45: How Quick Can We Be? Data Visualization Techniques for Engineers

function setMarkers(map, markers) { for (var i = 0; i < markers.length; i++) { ...

iwContent = "<span class=\”label\”>" + markers[i][0] + "</span><br/>" + "Number of People: " + markers[i][3] + "<br/>" + "% of Women: " + markers[i][4];

marker = new google.maps.Marker({ ... html: iwContent });

google.maps.event.addListener(marker, "click", function() {

infowindow.setContent(this.html); infowindow.open(map, this); }); } }

function initialize() { ... infowindow = new google.maps.InfoWindow({ content: "loading..." }); }

Page 46: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 47: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 48: How Quick Can We Be? Data Visualization Techniques for Engineers

<script src="http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/1.0/src/markerclusterer.js"></script>

var data = {"count": 232,"participants": [ { "location": "Aarhus, Denmark", "gender": "Female", "latitude": "56.162939", "longitude": "10.203921" }, { "location": "Aarhus, Denmark", "gender": "Female", "latitude": "56.162939", "longitude": "10.203921" }......]};

Page 49: How Quick Can We Be? Data Visualization Techniques for Engineers

var data = {"count": 232,"participants": [ { "location": "Aarhus, Denmark", "gender": "Female", "latitude": "56.162939", "longitude": "10.203921" }, { "location": "Aarhus, Denmark", "gender": "Female", "latitude": "56.162939", "longitude": "10.203921" }......]};

<script src="http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/1.0/src/markerclusterer.js"></script>

Page 50: How Quick Can We Be? Data Visualization Techniques for Engineers

<script src="http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/1.0/src/markerclusterer.js"></script>

var data = {"count": 232,"participants": [ { "location": "Aarhus, Denmark", "gender": "Female", "latitude": "56.162939", "longitude": "10.203921" }, { "location": "Aarhus, Denmark", "gender": "Female", "latitude": "56.162939", "longitude": "10.203921" }......]};

Page 51: How Quick Can We Be? Data Visualization Techniques for Engineers

var markers = [];

for (var i = 0; i < data.participants.length; ++i) { var latlng = new GLatLng(data.participants[i].latitude, data.participants[i].longitude); var marker = new GMarker(latlng, {icon: icon}); markers.push(marker);}var markerCluster = new MarkerClusterer(map, markers);

Page 52: How Quick Can We Be? Data Visualization Techniques for Engineers

var markers = [];

for (var i = 0; i < data.participants.length; ++i) { var latlng = new GLatLng(data.participants[i].latitude, data.participants[i].longitude); var marker = new GMarker(latlng, {icon: icon}); markers.push(marker);}var markerCluster = new MarkerClusterer(map, markers);

Page 53: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 54: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 55: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 56: How Quick Can We Be? Data Visualization Techniques for Engineers

var layer = new google.maps.FusionTablesLayer(747060, { heatmap: true });

layer.setMap(map);

Page 57: How Quick Can We Be? Data Visualization Techniques for Engineers

var layer = new google.maps.FusionTablesLayer(747060, { heatmap: true });

layer.setMap(map);

Page 58: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 59: How Quick Can We Be? Data Visualization Techniques for Engineers

function plotCircles(map, dataPoints) {

...

for (var i = 0; i < dataPoints.length; i++) { pointLatLng = new google.maps.LatLng(dataPoints[i][1],dataPoints[i][2]); circleOptions = { strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: “#FF0000”, fillOpacity: 0.40, map: map, center: pointLatLng, radius: dataPoints[i][3]*3000 }; circle = new google.maps.Circle(circleOptions); }

Page 60: How Quick Can We Be? Data Visualization Techniques for Engineers

function plotCircles(map, dataPoints) {

...

for (var i = 0; i < dataPoints.length; i++) { pointLatLng = new google.maps.LatLng(dataPoints[i][1],dataPoints[i][2]); circleOptions = { strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: “#FF0000”, fillOpacity: 0.40, map: map, center: pointLatLng, radius: dataPoints[i][3]*3000 }; circle = new google.maps.Circle(circleOptions); }

Page 61: How Quick Can We Be? Data Visualization Techniques for Engineers

...

percentage = dataPoints[i][4];

if (percentage <= 10) { color = "#FF0000"; } else if (percentage >=20) { color = "#339900"; } else { color = "#FFCC00"; }

circleOptions = { strokeColor: color, ....

Page 62: How Quick Can We Be? Data Visualization Techniques for Engineers

...

percentage = dataPoints[i][4];

if (percentage <= 10) { color = "#FF0000"; } else if (percentage >=20) { color = "#339900"; } else { color = "#FFCC00"; }

circleOptions = { strokeColor: color, ....

Page 63: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 64: How Quick Can We Be? Data Visualization Techniques for Engineers

...

setMarkers (map, locations);infowindow = new google.maps.InfoWindow({ content: "loading..." });

....

Page 65: How Quick Can We Be? Data Visualization Techniques for Engineers

...

setMarkers (map, locations);infowindow = new google.maps.InfoWindow({ content: "loading..." });

....

Page 66: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 67: How Quick Can We Be? Data Visualization Techniques for Engineers

YAHOO! MAPS WEB SERVICES

Page 68: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 69: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 70: How Quick Can We Be? Data Visualization Techniques for Engineers

.... icon = new YImage(); icon.src = "marker_34_red.png"; icon.size = new YSize(20,34); icon.offsetSmartWindow = new YCoordPoint(9,0);

....

var marker = new YMarker(point, icon);

....

Page 71: How Quick Can We Be? Data Visualization Techniques for Engineers

.... icon = new YImage(); icon.src = "marker_34_red.png"; icon.size = new YSize(20,34); icon.offsetSmartWindow = new YCoordPoint(9,0); ....

var marker = new YMarker(point, icon);

....

Page 72: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 73: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 74: How Quick Can We Be? Data Visualization Techniques for Engineers

GOOGLE CHARTS TOOLS

Page 75: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 76: How Quick Can We Be? Data Visualization Techniques for Engineers

ConclusionsVisualize 2

sets of dataNo Coding Legend First Map Full Control

OpenHeatMap Easy

Google Fusion

TablesEasy

Google Charts Moderate

Socrata Moderate

Google Maps API Moderate

Yahoo Maps

Web ServicesModerate

Google Charts

ToolsModerate

Page 77: How Quick Can We Be? Data Visualization Techniques for Engineers

Conclusions

Page 78: How Quick Can We Be? Data Visualization Techniques for Engineers

Conclusions• Very easy to plot flat numbers with most tools

Page 79: How Quick Can We Be? Data Visualization Techniques for Engineers

Conclusions• Very easy to plot flat numbers with most tools

• Plotting multiple sets of data without code is not trivial

Page 80: How Quick Can We Be? Data Visualization Techniques for Engineers

Conclusions• Very easy to plot flat numbers with most tools

• Plotting multiple sets of data without code is not trivial

• Flash graphics still ahead of JS graphics with respect to data visualization

Page 81: How Quick Can We Be? Data Visualization Techniques for Engineers

Conclusions• Very easy to plot flat numbers with most tools

• Plotting multiple sets of data without code is not trivial

• Flash graphics still ahead of JS graphics with respect to data visualization

• Most map and charting tools need better overall legend support

Page 82: How Quick Can We Be? Data Visualization Techniques for Engineers

Conclusions• Very easy to plot flat numbers with most tools

• Plotting multiple sets of data without code is not trivial

• Flash graphics still ahead of JS graphics with respect to data visualization

• Most map and charting tools need better overall legend support

• Maps API products very similar in structure

Page 83: How Quick Can We Be? Data Visualization Techniques for Engineers

Conclusions• Very easy to plot flat numbers with most tools

• Plotting multiple sets of data without code is not trivial

• Flash graphics still ahead of JS graphics with respect to data visualization

• Most map and charting tools need better overall legend support

• Maps API products very similar in structure

• We've uncovered just the tip of the iceberg in terms of data visualization

Page 84: How Quick Can We Be? Data Visualization Techniques for Engineers

Conclusions• Very easy to plot flat numbers with most tools

• Plotting multiple sets of data without code is not trivial

• Flash graphics still ahead of JS graphics with respect to data visualization

• Most map and charting tools need better overall legend support

• Maps API products very similar in structure

• We've uncovered just the tip of the iceberg in terms of data visualization

• Our visualized data showed us that the more the people that attended the event, the more likely we were to meet the 20% challenge

Page 85: How Quick Can We Be? Data Visualization Techniques for Engineers

Conclusions• Very easy to plot flat numbers with most tools

• Plotting multiple sets of data without code is not trivial

• Flash graphics still ahead of JS graphics with respect to data visualization

• Most map and charting tools need better overall legend support

• Maps API products very similar in structure

• We've uncovered just the tip of the iceberg in terms of data visualization

• Our visualized data showed us that the more the people that attended the event, the more likely we were to meet the 20% challenge

• We need to improve and automate our data collection process as much as possible

Page 86: How Quick Can We Be? Data Visualization Techniques for Engineers

Conclusions• Very easy to plot flat numbers with most tools

• Plotting multiple sets of data without code is not trivial

• Flash graphics still ahead of JS graphics with respect to data visualization

• Most map and charting tools need better overall legend support

• Maps API products very similar in structure

• We've uncovered just the tip of the iceberg in terms of data visualization

• Our visualized data showed us that the more the people that attended the event, the more likely we were to meet the 20% challenge

• We need to improve and automate our data collection process as much as possible

• We need more women hackers

Page 87: How Quick Can We Be? Data Visualization Techniques for Engineers

Conclusions• Very easy to plot flat numbers with most tools

• Plotting multiple sets of data without code is not trivial

• Flash graphics still ahead of JS graphics with respect to data visualization

• Most map and charting tools need better overall legend support

• Maps API products very similar in structure

• We've uncovered just the tip of the iceberg in terms of data visualization

• Our visualized data showed us that the more the people that attended the event, the more likely we were to meet the 20% challenge

• We need to improve and automate our data collection process as much as possible

• We need more women hackers

• When women do participate, they win!

Page 88: How Quick Can We Be? Data Visualization Techniques for Engineers
Page 91: How Quick Can We Be? Data Visualization Techniques for Engineers

Resources and further • http://msdn.microsoft.com/en-us/library/bb429619.aspx

• http://code.google.com/apis/chart/

• http://www.google.com/fusiontables/public/tour/index.html

• http://code.google.com/apis/maps/documentation/javascript/

• http://developer.yahoo.com/maps/

• http://www.openheatmap.com/

• http://googlegeodevelopers.blogspot.com/2009/04/markerclusterer-solution-to-too-many.html

• http://opendata.socrata.com/

Page 92: How Quick Can We Be? Data Visualization Techniques for Engineers

Photo Credits• http://www.flickr.com/photos/compassalba/5361528668/sizes/o/in/photostream/

• http://www.flickr.com/photos/rhok_chicago/5244434726/in/set-72157625557470340

• http://www.flickr.com/photos/rhok_chicago/5233673064/in/set-72157625529538216 

• http://www.flickr.com/photos/10785432@N03/4123252604/

• http://www.flickr.com/photos/thehbunny/5055948378/

• http://www.flickr.com/photos/53941041@N00/4977883190/

• http://www.flickr.com/photos/rhok_chicago/5243866521/

• http://www.flickr.com/photos/rhok_chicago/5244461658/in/set-72157625557470340

• http://www.flickr.com/photos/rhok_chicago/5233687260/in/set-72157625529538216

• http://www.flickr.com/photos/ladypain/1950149100/in/photostream/

• http://www.flickr.com/photos/10687935@N04/3055314845/

• http://www.flickr.com/photos/42788859@N00/318947873/