Guest User

Untitled

a guest
Dec 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. .x(function(d) { return formatDate.parse(d.Year);})
  2. .y(function(d) { return +d["HIV/AIDS"] });
  3.  
  4. key: "Zambia"
  5. values: Array(14)
  6. 0: {Country: "Zambia", Year: "Year 2000", HIV/AIDS: 3042, …}
  7. 1: {Country: "Zambia", Year: "Year 2001", HIV/AIDS: 3170, …}
  8. 2: {Country: "Zambia", Year: "Year 2002", HIV/AIDS: 3159, …}
  9.  
  10. //Stack generator
  11. var stack = d3.stack()
  12. .keys(function(d){return +d["HIV/AIDS"]})
  13. .order(d3.stackOrderNone)
  14. .offset(d3.stackOffsetNone)
  15.  
  16. //Line generator
  17. let area= d3.area()
  18. .x(function(d) {
  19. return xScale(dateFormat(d.Year));
  20. })
  21. .y0(function(d){
  22. return yScale(d.y0);
  23.  
  24. })
  25. .y1(function(d){
  26. return yScale(d.y0 + d.y)
  27. })
  28.  
  29. //group data by country name
  30. let newData = d3.nest()
  31. .key(function(d) {
  32. return d.Country;
  33. })
  34. .sortKeys(d3.descending)
  35. .sortValues(function(a, b) {
  36. return dateFormat(a.Year) - dateFormat(b.Year);
  37. })
  38. .entries(data);
  39.  
  40. console.log("New nested data:", newData);
  41.  
  42. var layers = stack(newData);
  43. console.log("layers", layers);
  44.  
  45. //Define yScale domain after data loaded
  46. yScale.domain([d3.max(data, function(d) {
  47. return +d["HIV/AIDS"]
  48. }), 0]);
  49.  
  50.  
  51. svg.selectAll("path")
  52. .data(layers)
  53. .enter()
  54. .append("path")
  55. .classed("line", true)
  56. .attr("d", function(d){
  57. return area(+d["HIV/AIDS"])
  58. })
  59. .style("fill", "url(#linear-gradient)")
Add Comment
Please, Sign In to add comment