JSFiddle - React, Tailwind, and code Playground
HTML
<div id="chart"></div>
CSS
body {
font: 10px sans-serif;
}
.axis path, .axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
JavaScript
var data = [
{
"key":"Group1",
"value":37,
"date":"04/23/12"
},
{
"key":"Group2",
"value":12,
"date":"04/23/12"
},
{
"key":"Group3",
"value":46,
"date":"04/23/12"
},
{
"key":"Group1",
"value":32,
"date":"04/24/12"
},
{
"key":"Group2",
"value":19,
"date":"04/24/12"
},
{
"key":"Group3",
"value":42,
"date":"04/24/12"
},
{
"key":"Group1",
"value":45,
"date":"04/25/12"
},
{
"key":"Group2",
"value":16,
"date":"04/25/12"
},
{
"key":"Group3",
"value":44,
"date":"04/25/12"
},
{
"key":"Group1",
"value":24,
"date":"04/26/12"
},
{
"key":"Group2",
"value":52,
"date":"04/26/12"
},
{
"key":"Group3",
"value":64,
"date":"04/26/12"
}
]
var format = d3.time.format("%m/%d/%y");
var margin = {top: 20, right: 30, bottom: 30, left: 40},
width = 960 - margin.left - margin.right,
height = 500 - margin.top - margin.bottom;
var x = d3.time.scale()
.range([0, width]);
var y = d3.scale.linear()
.range([height, 0]);
var z = d3.scale.category20c();
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom")
.ticks(d3.time.days);
var yAxis = d3.svg.axis()
.scale(y)
.orient("left");
var stack = d3.layout.stack()
.offset("zero")
.values(function(d) { return d.values; })
.x(function(d) { return d.date; })
.y(function(d) { return d.value; });
var nest = d3.nest()
.key(function(d) { return d.key; });
var area = d3.svg.area()
.interpolate("cardinal")
.x(function(d) { return x(d.date); })
.y0(function(d) { return y(d.y0); })
.y1(function(d) { return y(d.y0 + d.y); });
var stackedArea0 = d3.svg.area()
.interpolate("cardinal")
.x(function(d) { return x(d.date); })
.y0(function(d) { return height; })
.y1(function(d) { return height; });
var svg = d3.select("#chart").append("svg")
.attr("width", width +...