Built with blockbuilder.org
forked from syntagmatic's block: Metis Class 3 Starter Block
forked from ohdebby's block: Class 4 - debby
xxxxxxxxxx
<script src="https://d3js.org/d3.v4.min.js"></script>
<style type="text/css">
svg {
border:1px solid #000000;
}
text {
font-size: 14px;
}
path, line {
fill:none
}
</style>
<body></body>
<script>
// properties
var margin = {top: 20, right: 20, bottom: 20, left: 75};
var width = 800 - margin.left - margin.right;
var height = 600 - margin.top - margin.bottom;
var yscale = d3.scaleLinear();
var xscale = d3.scaleLinear();
var radius = d3.scaleSqrt();
var color = d3.scaleOrdinal(d3.schemeCategory20b);
var line = d3.line()
.x(function(d) {return xscale(d.year);})
.y(function(d) {return yscale(d.yield);});
d3.csv('barleyfull.csv', function(err, response) {
if (err) { throw(error)}
response.forEach(function(d) {
d.yield = +d.yield;
d.year = +d.year;
});
var nested = d3.nest()
.key(function(d){ return d.site; })
.key(function(d){ return d.gen; })
// .key(function(d){ return d.year; })
.entries(response);
yscale
.range([height,0])
.domain([0,
d3.max(response, function(d){return d.yield})]);
xscale
.range([0,width])
.domain([1927, 1936]);
radius
.range([0, 12])
.domain([0,
d3.max(response, function(d){return d.yield})]);
var chart = d3.select("body")
.append("div")
.datum(nested[1]);
chart.append("h2")
.text(
function(d) { return d.key; })
var yaxis = d3.axisLeft()
.scale(yscale);
var xaxis = d3.axisBottom()
.tickFormat(function(d) { return d; })
.scale(xscale);
var svg = chart.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] + ')');
svg.append("g")
.call(yaxis);
svg.append("g")
.attr("transform", "translate(0," + height +")")
.call(xaxis);
var gens = svg.selectAll("g.sites")
.data(function(d) {return d.values;})
.enter().append("g")
.attr("class", function(d) {return d.key; })
.attr("transform", function(d){
return "translate(0," + yscale(d.key) + ")"
});
// gens.selectAll("circle")
// .data(function(d){ return d.values;})
// .enter().append("circle")
// .attr("r", function (d) {return radius(d.yield); })
// .attr("cy", function (d) {return yscale(d.yield)})
// .attr("cx", function(d) { return xscale(d.year); })
// .attr("fill", function(d) { return color(d.gen); })
gens.append("path")
.attr("class","line")
.attr("d", function(d) { return line(d.values);})
.style("stroke", function(d) { return color(d.key);})
gens.append("text")
.attr("x", function(d)
{ return d.values[d.values.length-1].year })
.attr("y", function(d)
{ return d.values[d.values.length-1].yield })
.attr("alignment-baseline", "middle")
.text(function(d){return d.key;})
.style("fill", function(d) {return d3.rgb(color(d.key)).darker(0.65);})
console.log(nested);
});
</script>
https://d3js.org/d3.v4.min.js