Skip to content

Instantly share code, notes, and snippets.

@cogs15
Forked from d3noob/data.csv
Last active May 7, 2020 10:38
Show Gist options
  • Save cogs15/987f3214a295c04310adeae247744ebe to your computer and use it in GitHub Desktop.
Save cogs15/987f3214a295c04310adeae247744ebe to your computer and use it in GitHub Desktop.
Princeton
Year points
1971 0
1972 0
1973 0
1974 42
1975 50
1976 42
1977 42
1978 0
1979 0
1980 35
1981 35
1982 0
1983 0
1984 0
1985 0
1986 0
1987 0
1988 0
1989 0
1990 44
1991 95
1992 95
1993 97
1994 95
1995 72
1996 100
1997 100
1998 97
1999 54
2000 95
2001 97
2002 85
2003 85
2004 72
2005 0
2006 59
2007 59
2008 21
2009 85
2010 72
2011 0
2012 42
2013 40
2014 0
2015 41
2016 0
2017 0
2018 0
2019 0
2020 95
<!DOCTYPE html>
<meta charset="utf-8">
<style> /* set the CSS */
.line {
fill: none;
stroke: steelblue;
stroke-width: 2px;
}
.area {
fill: lightsteelblue;
}
</style>
<body>
<!-- load the d3.js library -->
<script src="https://d3js.org/d3.v4.min.js"></script>
<script>
// set the dimensions and margins of the graph
var margin = {top: 20, right: 20, bottom: 30, left: 50},
width = 960 - margin.left - margin.right,
height = 500 - margin.top - margin.bottom;
var axis1 = 'Year';
var axis2 = 'Rating'
// set the ranges
var x = d3.scaleLinear().range([0, width]);
var y = d3.scaleLinear().range([height, 0]);
// define the area
var area = d3.area()
.x(function(d) { return x(d.year); })
.y0(height)
.y1(function(d) { return y(d.points); });
// define the line
var valueline = d3.line()
.x(function(d) { return x(d.year); })
.y(function(d) { return y(d.points); });
var xAxis = d3.axisBottom()
.tickFormat(d3.format("d"));
// append the svg obgect to the body of the page
// appends a 'group' element to 'svg'
// moves the 'group' element to the top left margin
var svg = d3.select("body").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 + ")");
// get the data
d3.csv("data.csv", function(error, data) {
if (error) throw error;
// format the data
data.forEach(function(d) {
d.year = +d.year;
d.points = +d.points;
});
// scale the range of the data
//x.domain(d3.extent(data, function(d) { return d.year; }));
x.domain([1971,2020]);
//y.domain([0, d3.max(data, function(d) { return d.points; })]);
y.domain([0, 100]);
// add the area
svg.append("path")
.data([data])
.attr("class", "area")
.attr("d", area);
// add the valueline path.
svg.append("path")
.data([data])
.attr("class", "line")
.attr("d", valueline);
// add the X Axis
svg.append("g")
.attr("transform", "translate(0," + height + ")")
//.call(d3.axisBottom(x))
.call(xAxis);
// .attr("class", "label")
// .attr("x", width)
// .attr("y", -40)
// .text(axis1);
// add the Y Axis
svg.append("g")
.call(d3.axisLeft(y));
});
</script>
</body>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment