Skip to content

Instantly share code, notes, and snippets.

@jisaacks
Last active December 17, 2015 21:49
Show Gist options
  • Save jisaacks/5677681 to your computer and use it in GitHub Desktop.
Save jisaacks/5677681 to your computer and use it in GitHub Desktop.
D3 Advanced Brush Style - Part 1
var data = [{
date: new Date("Jan 01, 2013"),
data: 12
},{
date: new Date("Jan 02, 2013"),
data: 17
},{
date: new Date("Jan 03, 2013"),
data: 5
},{
date: new Date("Jan 04, 2013"),
data: 18
},{
date: new Date("Jan 05, 2013"),
data: 20
},{
date: new Date("Jan 06, 2013"),
data: 4
},{
date: new Date("Jan 07, 2013"),
data: 9
},{
date: new Date("Jan 08, 2013"),
data: 12
},{
date: new Date("Jan 09, 2013"),
data: 15
},{
date: new Date("Jan 10, 2013"),
data: 2
},{
date: new Date("Jan 11, 2013"),
data: 19
},{
date: new Date("Jan 12, 2013"),
data: 3
},{
date: new Date("Jan 13, 2013"),
data: 7
},{
date: new Date("Jan 14, 2013"),
data: 14
},{
date: new Date("Jan 15, 2013"),
data: 8
},{
date: new Date("Jan 16, 2013"),
data: 17
},{
date: new Date("Jan 17, 2013"),
data: 12
}];
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>D3 Advanced Brush Styling - Part 1</title>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.v2.js"></script>
<script type="text/javascript" src="data.js"></script>
<script type="text/javascript" src="main.js"></script>
</head>
<body style="margin:0; padding:0;">
<script>run();</script>
</body>
</html>
function run() {
var w = 700;
var h = 100;
var x = d3.time.scale()
.range([0,w])
.domain([data[0].date, data[data.length-1].date]);
var y = d3.scale.linear()
.range([h,0])
.domain([0,20]);
var svg = d3.select("body").append("svg").style({width: "700px"});
var focus = svg.append("g");
var line = d3.svg.line()
.interpolate("basis")
.x(function(d){ return x(d.date);})
.y(function(d){ return y(d.data);});
var area = d3.svg.area()
.interpolate("basis")
.x(function(d){ return x(d.date);})
.y1(function(d){ return y(d.data);})
.y0(function(d){ return y(0);});
var brush = d3.svg.brush().x(x);
focus.append("path")
.attr("class","area")
.style({
"fill": "#ccc",
})
.datum(data)
.attr("d",area);
focus.append("path")
.attr("class","line")
.style({
"fill": "none",
"stroke": "#000",
"stroke-width": "2"
})
.datum(data)
.attr("d",line);
focus.append("g")
.attr("class","x brush")
.call(brush.extent([data[7].date,data[11].date]))
.selectAll("rect")
.attr("height",h)
.style({
"fill": "#69f",
"fill-opacity": "0.3"
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment