<html> <head> <title>chart 1</title> </head> <body> <p>The eye-color statics of different-hair-colored students</p> <meta charset="utf-8"> <style> .bar { fill: steelblue; } .axis path { display: none;} </style>
<script src="https://d3js.org/d3.v4.js"></script> <svg width="350" height="400"></svg> <script> var svg=d3.select("svg"), margin={top:20, right:20, bottom: 40, left:40}, width=+svg.attr("width")-margin.left-margin.right, height = +svg.attr("height") - margin.top - margin.bottom, g = svg.append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var x=d3.scaleBand() .rangeRound([0,width]) .padding(0.1) .align(0.1)
var y=d3.scaleLinear() .rangeRound([height,0]);
var z=d3.scaleOrdinal() .range(["#b75454","#0080ff","#a8b461","#4ca64c"])
var stack=d3.stack();
d3.csv("https://raw.githubusercontent.com/Co10/d3_files/master/CSV_files/00/eye_hair_color_data.csv",type,function(data){ x.domain(data.map(function(d){return d.Hair_color;})); y.domain([0,d3.max(data,function(d){return d.total;})]).nice(); z.domain(data.columns.slice(1));
stack.keys(data.columns.slice(1));
g.selectAll(".serie") .data(stack(data)) .enter().append("g") .attr("class","serie") .attr("fill",function(d){return z(d.key);}) .selectAll("rect") .data(function(d){return d;}) .enter().append("rect") .attr("x",function(d){return x(d.data.Hair_color);}) .attr("y",function(d){return y(d[1]);}) .attr("height", function(d) { return y(d[0]) - y(d[1]); }) .attr("width", x.bandwidth()); g.append("g") .attr("class", "axis axis--x") .attr("transform", "translate(0," + height + ")") .call(d3.axisBottom(x));
g.append("g") .attr("class", "axis axis--y") .call(d3.axisLeft(y).ticks(10, "s")) .append("text") .attr("x", 1) .attr("y", y(y.ticks(10).pop())-10) .attr("dy", "0.35em") .attr("text-anchor", "start") .attr("fill", "#000") .text("Number"); g.append("text") .attr("x",240) .attr("y",370) .style("font-size","12px") .text("Hair Color") g.append("text") .attr("x",237) .attr("y",0) .style("font-size","12px") .text("Eye Color")
var legend = g.selectAll(".legend") .data(data.columns.slice(1).reverse()) .enter().append("g") .attr("class", "legend") .attr("transform", function(d, i) { return "translate(0," + i * 20 + ")"; }) .style("font", "10px sans-serif");
legend.append("rect") .attr("x", width - 18) .attr("width", 16) .attr("height", 16) .attr("fill", z);
legend.append("text") .attr("x", width - 24) .attr("y", 9) .attr("dy", ".35em") .attr("text-anchor", "end") .text(function(d) { return d; }); })
function type(d, i, columns) { for (i = 1, t = 0; i < columns.length; ++i) t += d[columns[i]] = +d[columns[i]]; d.total = t; return d; }
var p =d3.select("body").selectAll("p"); p.style("color","#1979a9").style("font-size","28px");
</script> </body> </html>
|