Skip to content

Instantly share code, notes, and snippets.

@emeeks
Last active March 18, 2016 03:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save emeeks/65f4462b63f2b04b0175 to your computer and use it in GitHub Desktop.
Save emeeks/65f4462b63f2b04b0175 to your computer and use it in GitHub Desktop.
Ch. 4, Fig. 12 - D3.js in Action

This is the code for Chapter 4, Figure 12 from D3.js in Action creates a scatterplot from the median values from a dataset loaded from CSV.

day min max median q1 q3 number
1 14 65 33 20 35 22
2 25 73 25 25 30 170
3 15 40 25 17 28 185
4 18 55 33 28 42 135
5 14 66 35 22 45 150
6 22 70 34 28 42 170
7 14 65 33 30 50 28
<html>
<head>
<title>D3 in Action Chapter 4 - Example 6</title>
<meta charset="utf-8" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
</head>
<style>
svg {
height: 500px;
width: 500px;
border: 1px solid gray;
}
line {
shape-rendering: crispEdges;
stroke: #000000;
}
line.minor {
stroke: #777777;
stroke-dasharray: 2,2;
}
path.domain {
fill: none;
stroke: black;
}
</style>
<body>
<div id="viz">
<svg>
</svg>
</div>
<div id="controls" />
</body>
<footer>
<script>
d3.csv("boxplot.csv", scatterplot)
function scatterplot(data) {
xScale = d3.scale.linear().domain([1,8]).range([20,470]);
yScale = d3.scale.linear().domain([0,100]).range([480,20]);
console.log(data)
yAxis = d3.svg.axis()
.scale(yScale)
.orient("right")
.ticks(8)
.tickSize(-470)
.tickSubdivide(true);
d3.select("svg").append("g")
.attr("transform", "translate(470,0)")
.attr("id", "yAxisG")
.call(yAxis);
xAxis = d3.svg.axis()
.scale(xScale)
.orient("bottom")
.tickSize(-470)
.tickValues([1,2,3,4,5,6,7]);
d3.select("svg").append("g")
.attr("transform", "translate(0,480)")
.attr("id", "xAxisG")
.call(xAxis);
d3.select("svg").selectAll("circle.median")
.data(data)
.enter()
.append("circle")
.attr("class", "tweets")
.attr("r", 5)
.attr("cx", function(d) {return xScale(d.day)})
.attr("cy", function(d) {return yScale(d.median)})
.style("fill", "darkgray");
}
</script>
</footer>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment