Data Visualization Project
*Summary
*Design
*Feedback
*Resources
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title>Comparing North American Major Sports Leagues by Revenue & Attendance</title> | |
<link href='http://fonts.googleapis.com/css?family=Lora' rel='stylesheet' type='text/css'> | |
<script src="http://d3js.org/d3.v3.min.js"></script> | |
<script src="http://dimplejs.org/dist/dimple.v2.0.0.min.js"></script> | |
<script type="text/javascript"> | |
function draw(data,filter_year) { | |
var chartdata = dimple.filterData(data, "Year", filter_year); | |
//var chartdata = data; | |
/* | |
D3.js setup code | |
*/ | |
"use strict"; | |
var margin = 75, | |
width = 1400 - margin, | |
height = 600 - margin; | |
var svg = d3.select("body") | |
.append("h1") | |
.text(filter_year) | |
.attr("align","center") | |
.append("p") | |
.text("Annual Attendance vs Annual Revenue for Major Sports Leagues") | |
.attr("align","center") | |
.append("svg") | |
.attr("width", width + margin) | |
.attr("height", height + margin) | |
.append('g') | |
.attr('class','chart'); | |
/* | |
Dimple.js Chart construction code | |
*/ | |
var myChart = new dimple.chart(svg, chartdata); | |
myChart.addMeasureAxis("x", "Revenue"); | |
myChart.addMeasureAxis("y", "Attendance"); | |
myChart.addSeries("League", dimple.plot.bubble); | |
//myChart.addLegend(60, 10, 510, 20, "right"); | |
myChart.ease = "bounce"; | |
myChart.staggerDraw = true; | |
myChart.draw(1000); | |
//svg.exit().remove(); | |
//myChart.exit().remove(); | |
//svg.selectAll("*").remove(); | |
}; | |
</script> | |
<style type="text/css"> | |
.customFont { font-family: ‘Metrophobic’, Arial, serif; font-weight: 400;} | |
.div_NHL { background-color: #c2e487; float:left; margin-right: 10px;} | |
.div_NBA { background-color: #ebb980; float:left; margin-right: 10px;} | |
.div_MLB { background-color: #ebbbb5; float:left; margin-right: 10px;} | |
.div_NFL { background-color: #95b8d1; float:left; margin-right: 10px;} | |
</style> | |
</head> | |
<body> | |
<div class="div_NHL"><p> </p><img src="nhl-on.png" alt="NHL" align="middle"><p> </p></div> | |
<div class="div_NBA"><p> </p><img src="nba-on.png" alt="NBA" align="middle"><p> </p></div> | |
<div class="div_MLB"><p> </p><img src="mlb-on.png" alt="MLB" align="middle"><p> </p></div> | |
<div class="div_NFL"><p> </p><img src="nfl-on.png" alt="NFL" align="middle"><p> </p></div> | |
<div> | |
<script type="text/javascript"> | |
//var view_year = "2006"; | |
var years = ["2006","2007","2008","2009","2010","2011"]; | |
/* | |
Use D3 (not dimple.js) to load the CSV file | |
and pass the contents of it to the draw function | |
*/ | |
d3.csv("tidy.csv", function(d) { | |
return { | |
Year: d.Year, // convert "Year" column to Date | |
League: d.League, | |
Attendance: +d.Attendance, // convert "Length" column to number | |
Revenue: +d.Revenue | |
}; | |
}, | |
function(dataset){ | |
var i = 0; | |
var year_interval = setInterval(function() { | |
draw(dataset,years[i]); | |
i++; | |
if(i > years.length) { | |
clearInterval(year_interval); | |
} | |
},1000); //Animation changes after 1 second | |
}); | |
</script> | |
</div> | |
</body> | |
</html> |
Year | League | Attendance | Revenue | |
---|---|---|---|---|
2006 | NFL | 17.6 | 6539 | |
2006 | NHL | 20.9 | 2267 | |
2006 | NBA | 21.6 | 3367 | |
2006 | MLB | 76.3 | 5111 | |
2007 | NFL | 17.6 | 7090 | |
2007 | NHL | 20.9 | 2436 | |
2007 | NBA | 21.8 | 3573 | |
2007 | MLB | 79.6 | 5489 | |
2008 | NFL | 17.5 | 7575 | |
2008 | NHL | 21.3 | 2747 | |
2008 | NBA | 21.4 | 3768 | |
2008 | MLB | 79 | 5819 | |
2009 | NFL | 17.3 | 8016 | |
2009 | NBA | 21.5 | 3786 | |
2009 | NHL | 21.5 | 2819 | |
2009 | MLB | 73.6 | 5898 | |
2010 | NFL | 17.1 | 8345 | |
2010 | NHL | 21 | 2929 | |
2010 | NBA | 21.1 | 3805 | |
2010 | MLB | 73.2 | 6137 | |
2011 | NFL | 17.2 | 8867 | |
2011 | NHL | 21.1 | 3090 | |
2011 | NBA | 21.3 | 3960 | |
2011 | MLB | 73.7 | 6464 |
Make format corrections
Update code
Upload csv file