2016-11-24 61 views

回答

1

可以繪製使用標準d3.arc然後縮放容器的電弧以使其顯示爲一個橢圓:

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <script data-require="[email protected]" data-semver="4.0.0" src="https://d3js.org/d3.v4.min.js"></script> 
 
</head> 
 

 
<body> 
 
    <script> 
 
    
 
    var svg = d3.select('body') 
 
     .append('svg') 
 
     .attr('width', 500) 
 
     .attr('height', 300) 
 
     .append('g') 
 
     .attr('transform', 'translate(250,150)scale(1.6,1)'); 
 
     
 
    var step = (2 * Math.PI)/8, 
 
     data = d3.range(0, 2 * Math.PI , step).map(function(d){ 
 
      return { 
 
      s: d, 
 
      e: d + step, 
 
      f: Math.random() > 0.5 ? true : false 
 
      }; 
 
     }); 
 
    
 
    svg.selectAll("path") 
 
     .data(data) 
 
     .enter() 
 
     .append("path") 
 
     .attr("d", function(d){ 
 
     return d3.arc()({ 
 
      innerRadius: 0, 
 
      outerRadius: 150, 
 
      startAngle: d.s, 
 
      endAngle: d.e 
 
     }); 
 
     }) 
 
     .style("fill", function(d,i){ 
 
     return d.f ? "red" : "gray"; 
 
     }) 
 
     .style("stroke", "black"); 
 
    
 
    </script> 
 
</body> 
 

 
</html>