{
var margin = {top: 20, right: 30, bottom: 30, left: 60},
width = 800 - margin.left - margin.right,
height = 600 - margin.top - margin.bottom;
var data = [
{month: "Q1-2000", domestic: 69607, international: 35476},
{month: "Q2-2000", domestic: 226493, international: 97112},
{month: "Q3-2000", domestic: 189292, international: 126820},
{month: "Q4-2000", domestic: 26417, international: 6786},
{month: "Q1-2001", domestic: -96984, international: 42221},
{month: "Q2-2001", domestic: -473359, international: 36259},
{month: "Q3-2001", domestic: -387386, international: 96568},
{month: "Q4-2001", domestic: -396983, international: -137512},
{month: "Q1-2002", domestic: -1099842, international: -331636},
{month: "Q2-2002", domestic: -412967, international: -72752},
{month: "Q3-2002", domestic: -789387, international: -61523},
{month: "Q4-2002", domestic: -602512, international: -125041}
];
var series = d3.stack()
.keys(["domestic", "international"])
.offset(d3.stackOffsetDiverging)
(data);
var svg2 = d3.select("#profits_AA")
.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 + ")");
var x = d3.scaleBand()
.domain(data.map(function(d) { return d.month; }))
.rangeRound([margin.left, width - margin.right])
.padding(0.1);
var y = d3.scaleLinear()
.domain([d3.min(series, stackMin), d3.max(series, stackMax)])
.rangeRound([height - margin.bottom, margin.top]);
var z = d3.scaleOrdinal().domain(["domestic", "international"]).range(["steelblue", "lightblue"])
svg2.append("g")
.selectAll("g")
.data(series)
.enter().append("g")
.attr("fill", function(d) { return z(d.key); })
.selectAll("rect")
.data(function(d) { return d; })
.enter().append("rect")
.attr("width", x.bandwidth)
.attr("x", function(d) { return x(d.data.month); })
.attr("y", function(d) { return y(d[1]); })
.attr("height", function(d) { return y(d[0]) - y(d[1]); })
svg2.append("g")
.attr("transform", "translate(0," + y(0) + ")")
.call(d3.axisBottom(x))
.call(g => g.select(".tick:last-of-type text").clone()
.attr("x",-20)
.attr("y",-10)
.attr("text-anchor", "start")
.attr("font-weight", "bold")
.text("Date"));
svg2.append("g")
.attr("transform", "translate(" + margin.left + ",0)")
.call(d3.axisLeft(y))
.call(g => g.select(".tick:last-of-type text").clone()
.attr("x", 3)
.attr("y", -30)
.attr("text-anchor", "start")
.attr("font-weight", "bold")
.text("Profits"));
function stackMin(serie) {
return d3.min(serie, function(d) { return d[0]; });
}
function stackMax(serie) {
return d3.max(serie, function(d) { return d[1]; });
}
}