Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save merelyanode/698bcf021454a5a817ed to your computer and use it in GitHub Desktop.
Save merelyanode/698bcf021454a5a817ed to your computer and use it in GitHub Desktop.
DVD3 Module 6 Assignment. Comparing more than one set of data on the Y-axis
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CA High School Smoking Rates: Males</title>
<script type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script>
<style type="text/css">
body {
background-color: #554236;
font-family: Helvetica, Arial, sans-serif;
}
h1 {
font-size: 24px;
margin: 0;
color: white;
}
p {
font-size: 14px;
margin: 10px 0 0 0;
color: white;
}
a {
color: #F1EFA5;
}
svg {
background-color: #554236;
}
.axis path,
.axis line {
fill: none;
stroke: white;
shape-rendering: crispEdges;
}
.axis text {
font-family: sans-serif;
font-size: 11px;
fill: white;
}
</style>
</head>
<body>
<h1>Prevalance of Smoking Among High School Students in California</h1>
<p>The Prevalence of Smoking Among <strong style="color: #D3CE3D;">Male</strong> California High School Students as compared to the<strong style="color: #F77825;"> Total</strong> California High School Population, 2002-2012. Source: <a href="https://cdph.data.ca.gov/Diseases-and-Conditions/Smoking-Prevalence-in-High-School-2001-2012/g54d-fpkj">California Department of Public Health</a></p>
<script type="text/javascript">
//Dimensions and padding
var w = 700;
var h = 600;
var padding = [ 20, 10, 50, 100 ]; //Top, right, bottom, left
//Set up date formatting and years
var dateFormat = d3.time.format("%Y");
//Set up scales
var xScale = d3.time.scale()
.range([ padding[3], w - padding[1] - padding[3] ]);
var yScale = d3.scale.linear()
.range([ padding[0], h - padding[2] ]);
//Configure axis generators
var xAxis = d3.svg.axis()
.scale(xScale)
.orient("bottom")
.ticks(4)
.tickFormat(function(d) {
return dateFormat(d);
});
var yAxis = d3.svg.axis()
.scale(yScale)
.orient("left")
.ticks(8)
.tickFormat(function(d) {
return d + "%";
});
//Configure line generator
var line = d3.svg.line()
.x(function(d) {
return xScale(dateFormat.parse(d.Year));
})
.y(function(d) {
return yScale(d.PercentCurrentSmokers);
});
//Create the empty SVG image
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
//Load Total data
d3.csv("SmokingPrevalenceHighSchoolTotal2002-2012.csv", function(totalData) {
//Load Male data
d3.csv("SmokingPrevalenceHighSchoolMales2002-2012.csv", function(maleData) {
//Create a new array that contains both the
//total and male data, merged into one
var mergedData = totalData.concat(maleData);
//console.log(mergedData);
//Use the newly merged data to determine the
//min and max values, for setting scale domains
xScale.domain([
d3.min(mergedData, function(d) {
return dateFormat.parse(d.Year);
}),
d3.max(mergedData, function(d) {
return dateFormat.parse(d.Year);
})
]);
yScale.domain([
d3.max(mergedData, function(d) {
return +d.PercentCurrentSmokers;
}),
0
]);
//Lines
//
// Note data is wrapped in another array, so all its
// values are bound to a single element (the line!)
//
svg.data([ totalData ])
.append("path")
.attr("class", "line total")
.attr("d", line)
.attr("fill", "none")
.attr("stroke", "#F77825")
.attr("stroke-width", 5);
svg.data([ maleData ])
.append("path")
.attr("class", "line male")
.attr("d", line)
.attr("fill", "none")
.attr("stroke", "#D3CE3D")
.attr("stroke-width", 5);
//Axes
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + (h - padding[2]) + ")")
.call(xAxis);
svg.append("g")
.attr("class", "y axis")
.attr("transform", "translate(" + (padding[3]) + ",0)")
.call(yAxis);
});
//End male data load function
});
//End total data load function
</script>
</body>
</html>
Year PercentCurrentSmokers Gender
2002 16.2 Male
2004 14.4 Male
2006 17.1 Male
2008 12.3 Male
2010 16.3 Male
2012 13 Male
Year PercentCurrentSmokers Gender
2002 16 Total
2004 13.2 Total
2006 15.4 Total
2008 14.6 Total
2010 13.8 Total
2012 10.5 Total
Year PercentCurrentSmokers Gender
2002 15.7 Female
2004 11.9 Female
2006 13.7 Female
2008 16.8 Female
2010 11.1 Female
2012 8 Female
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment