Created
May 18, 2015 00:50
-
-
Save toxford/93e7f8bb359eed29f4a7 to your computer and use it in GitHub Desktop.
4airlines
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
date | Airtran | Alaska | American | Delta | ExpressJet | Frontier | Hawaiian | JetBlue | SkyWest | Southwest | United | USAirways | VirginAmerica | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
20140101 | 7.4 | 3.3 | 6.8 | 6.0 | 7.1 | 7.1 | 5.2 | 8.6 | 5.4 | 8.0 | 8.7 | 6.0 | 3.5 | |
20140201 | 5.2 | 2.9 | 6.0 | 5.8 | 8.5 | 6.1 | 6.2 | 8.8 | 5.2 | 7.7 | 9.1 | 5.8 | 3.8 | |
20140301 | 5.3 | 3.2 | 5.4 | 5.3 | 6.8 | 4.6 | 5.0 | 6.5 | 4.6 | 8.0 | 7.2 | 5.8 | 2.7 | |
20140401 | 3.9 | 2.3 | 4.8 | 4.6 | 5.9 | 4.1 | 3.5 | 5.6 | 4.2 | 7.5 | 5.2 | 5.1 | 2.4 | |
20140501 | 4.5 | 2.5 | 6.0 | 5.0 | 6.3 | 4.5 | 3.8 | 6.0 | 4.7 | 8.4 | 6.5 | 5.7 | 2.7 | |
20140601 | 4.9 | 3.5 | 7.4 | 5.8 | 7.3 | 5.5 | 3.2 | 6.0 | 5.4 | 9.4 | 8.7 | 6.7 | 3.8 | |
20140701 | 4.7 | 3.3 | 7.1 | 4.6 | 6.5 | 4.1 | 4.0 | 8.4 | 5.2 | 9.1 | 7.5 | 7.0 | 3.1 | |
20140801 | 4.5 | 3.7 | 7.2 | 4.9 | 6.3 | 3.9 | 3.7 | 6.6 | 5.0 | 7.4 | 7.0 | 5.5 | 3.4 | |
20140901 | 3.3 | 3.0 | 5.6 | 4.1 | 6.0 | 3.5 | 4.6 | 3.5 | 4.0 | 5.4 | 5.3 | 4.7 | 3.1 | |
20141001 | 3.1 | 3.0 | 6.0 | 3.9 | 5.7 | 3.2 | 5.9 | 4.1 | 4.0 | 5.5 | 7.1 | 5.0 | 3.4 | |
20141101 | 2.7 | 3.4 | 6.2 | 4.0 | 4.9 | 4.3 | 5.8 | 4.9 | 4.9 | 5.5 | 6.8 | 5.4 | 2.8 | |
20141201 | 4.1 | 4.2 | 7.9 | 3.7 | 6.2 | 6.1 | 6.8 | 5.8 | 6.5 | 8.6 | 9.9 | 5.5 | 4.9 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
body, svg { | |
background-color: #EEEEEE; | |
font-family: "Helvetica", sans-serif; | |
} | |
h1 { | |
font-size: 1.4rem; | |
line-height: 1.8rem; | |
color: #272727; | |
} | |
p { | |
font-size: 1rem; | |
line-height: 1.2rem; | |
color: #272727; | |
width: 100%; | |
max-width: 700px; | |
margin-bottom: 0; | |
} | |
p.sourceline { | |
font-size: 0.8rem; | |
} | |
a { | |
color: #367492; | |
text-decoration: none; | |
} | |
a:hover { | |
color: #4DAAD8; | |
} | |
path { | |
stroke: #663366; | |
stroke-width: 2; | |
fill: none; | |
} | |
.axis path, .axis line { | |
fill: none; | |
stroke: #666666; | |
stroke-width: 1; | |
shape-rendering: crispEdges; | |
} | |
.axis .minor line { | |
stroke: #777; | |
} | |
.legend { | |
font-size: 12px; | |
} | |
rect { | |
stroke-width: 2; | |
} | |
.y path { | |
display: none; | |
} | |
.axis text { | |
margin: 20px; | |
} | |
.airline { | |
opacity: 0.2; | |
-webkit-transition: opacity .2s; | |
transition: opacity .2s; | |
} | |
.airline .line { | |
stroke: #666; | |
stroke-width: 4; | |
opacity: 0.5; | |
} | |
.airline:hover { | |
opacity: 1; | |
cursor: pointer; | |
} | |
.airline:hover { | |
opacity: 1; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title>d3-linechart-mod6</title> | |
<link rel="stylesheet" type="text/css" href="d3-styles.css" /> | |
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script> | |
</head> | |
<body> | |
<h1>Flight delays</h1> | |
<p>Unlike weather delays, carrier delays can be prevented. This chart shows the percentage of U.S. domestic flights delayed by circumstances within the airline’s control (e.g. maintenance, crew problems, fueling).</p> | |
<div id="d3Chart"> | |
<script type="text/javascript"> | |
// 1. SETUP MARGIN AND WIDTH, HEIGHT VARIABLES | |
var margin = { top: 30, right: 20, bottom: 30, left: 50 }, | |
width = 800 - margin.left - margin.right, | |
height = 340 - margin.top - margin.bottom; | |
// 3b. SETUP DATE, TIME PARSER | |
var parseDate = d3.time.format('%Y%m%d').parse; | |
// 4. SET UP RANGES (PIXEL DIMENSIONS) | |
var x = d3.time.scale().range([0, (width - margin.right*5)]); | |
var y = d3.scale.linear().range([height, 0]); | |
/////////COLOR SCALE | |
var color = d3.scale.category10(); | |
// 6. SET UP X,Y AXIS GENERATORS | |
var xAxis = d3.svg.axis() | |
.scale(x) | |
.orient('bottom') | |
.tickFormat(d3.time.format("%b")); | |
var yAxis = d3.svg.axis() | |
.scale(y) | |
.orient('left') | |
.tickFormat(function(d) { | |
return d + "%"; | |
}); | |
// 7. DEFINE LINE | |
var line = d3.svg.line() | |
.x(function(d) { return x(d.date); }) | |
.y(function(d) { return y(d.delays); }); | |
// 2. SET UP VARIABLE FOR SVG 'CANVAS' | |
var svg = d3.select('#d3Chart').append('svg') | |
.attr('width', width + margin.left + margin.right) | |
.attr('height', height + margin.top + margin.bottom) | |
.append('g') | |
.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')'); | |
// ------------- THE CHART BLOCK ---------------- | |
// 3a. LOAD CSV DATA & PARSE IT | |
d3.csv('airlinesData.csv', function(error, data) { | |
color.domain(d3.keys(data[0]) | |
.filter(function(key) { return key !== "date"; })); | |
data.forEach(function(d) { | |
d.date = parseDate(d.date); | |
}); | |
///NOT SURE--------------- | |
var airlines = color.domain().map(function(name) { | |
return { | |
name: name, | |
values: data.map(function(d) { | |
return {date: d.date, delays: +d[name]}; | |
}) | |
}; | |
}); | |
// 5. SCALE THE RANGE OF THE DATA (SETUP DOMAIN) | |
x.domain(d3.extent(data, function(d) { return d.date; }));//extent returns a min and max value | |
///NOT SURE--------------- | |
y.domain([0, d3.max(airlines, function(c) { return d3.max(c.values, function(v) { return v.delays; }); }) | |
]); | |
//--------------- | |
var airline = svg.selectAll(".airline") | |
.data(airlines) | |
.enter().append("g") | |
.attr("class", "airline"); | |
// 9. ADD X AXIS SVG | |
svg.append('g') | |
.attr('class', 'x axis') | |
.attr('transform', 'translate(0,' + height + ')') | |
.call(xAxis); | |
// 10. ADD Y AXIS SVG | |
var gy = svg.append("g") | |
.attr("class", "y axis") | |
.call(yAxis); | |
gy.selectAll("g").filter(function(d) { return d; }) | |
.classed("minor", true); | |
// 8. ADD LINE | |
airline.append("path") | |
.attr("class", "line") | |
.attr("d", function(d) { return line(d.values); }); | |
// ADD TEXT LABELS | |
airline.append("text") | |
.datum(function(d) { return {name: d.name, value: d.values[d.values.length - 1]}; }) | |
.attr("transform", function(d) { return "translate(" + x(d.value.date) + "," + y(d.value.delays) + ")"; }) | |
.attr("class" , (function(d) { return d.name; })) | |
.attr("x", 10) | |
.attr("dy", ".35em") | |
.attr("class", "textLabel") | |
.text(function(d) { return d.name; }); | |
}); | |
</script> | |
</div> | |
<p class="sourceline">Source: <a href="http://www.transtats.bts.gov/OT_Delay/OT_DelayCause1.asp">Bureau of Transportation Statistics</a></p> | |
</body> | |
</html> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment