Guest User

Untitled

a guest
Aug 14th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. var data = [["Arsenal",-0.0032967741593940836, 0.30399753945657115],["Chelsea", 0.2752159801936051, -0.0389675484210763], ["Liverpool",-0.005096951348655329, 0.026678627680541075], ["Manchester City",-0.004715381791104284, -0.12338379196523988], ["Manchester United",0.06877966010653305, -0.0850615090351779], ["Tottenham",-0.3379518099485709, -0.09933664174939877]];
  2.  
  3. var selectedTeams = [];
  4.  
  5. const colours = d3.scaleOrdinal()
  6. .domain(data)
  7. .range(["#F8B195", "#F67280", "#C06C84", "#6C5B7B", "#355C7D", "#2A363B"]);
  8.  
  9. var canvasW = 675;
  10. var canvasH = 600;
  11. var w = 365;
  12. var h = 365;
  13. var xPadding = 30;
  14. var yPadding = 20;
  15. var padding = 10;
  16. var border = 0.5;
  17. var bordercolor = 'black';
  18.  
  19. var xScale = d3.scaleLinear()
  20. .range([xPadding, w - padding])
  21. .domain([-1, 1]);
  22.  
  23. var yScale = d3.scaleLinear()
  24. .range([h - yPadding, padding])
  25. .domain([-1, 1]);
  26.  
  27. var svg = d3.select('body')
  28. .append("svg")
  29. .attr('width', canvasW)
  30. .attr('height', canvasH);
  31.  
  32. var circles = svg.selectAll("circle")
  33. .data(data)
  34. .enter()
  35. .append("circle")
  36. .attr("r", 7)
  37. .attr("cx", function(d) { return xScale(d[1]); })
  38. .attr("cy", function(d) { return yScale(d[2]); })
  39. .attr("fill", function(d) {
  40. var result = null;
  41.  
  42. if (data.indexOf(d) >= 0) {
  43. result = colours(d);
  44. } else {
  45. result = "white";
  46. }
  47. return result;
  48. });
  49.  
  50. var lasso_start = function() {
  51. lasso.items()
  52. .attr("r",7)
  53. .classed("not_possible",true)
  54. .classed("selected",false);
  55. };
  56.  
  57. var lasso_draw = function() {
  58.  
  59. lasso.possibleItems()
  60. .classed("not_possible",false)
  61. .classed("possible",true);
  62.  
  63. lasso.notPossibleItems()
  64. .classed("not_possible",true)
  65. .classed("possible",false);
  66. };
  67.  
  68. var lasso_end = function() {
  69.  
  70. lasso.items()
  71. .classed("not_possible",false)
  72. .classed("possible",false);
  73.  
  74. lasso.selectedItems()
  75. .classed("selected", true)
  76. .attr("r", 13);
  77.  
  78. var selected = lasso.selectedItems().filter(function(d) {
  79. return d.selected === true;
  80. })
  81.  
  82. var selectedDots = selected.words.map(d=>d.id);
  83.  
  84. selectedTeams.slice(0, selectedTeams.length);
  85. selectedTeams.push(selectedDots);
  86. console.log(selectedTeams)
  87.  
  88.  
  89. lasso.items().filter(function(d) {
  90. return d.selected ===false
  91. })
  92. .classed({"not_possible":false,"possible":false})
  93. .attr("r",7);
  94.  
  95. };
  96.  
  97. var area = svg.append("rect")
  98. .attr("width", w)
  99. .attr("height", h)
  100. .style("opacity", 0);
  101.  
  102. var lasso = d3.lasso()
  103. .closePathSelect(true)
  104. .closePathDistance(100)
  105. .items(circles)
  106. .targetArea(area)
  107. .on("start",lasso_start)
  108. .on("draw",lasso_draw)
  109. .on("end",lasso_end);
  110.  
  111. svg.call(lasso);
  112.  
  113. lasso.items(d3.selectAll("circles"));
Add Comment
Please, Sign In to add comment