2017-05-23 3 views
-1

실제로 도넛 형 아크에 나타나는 레이블 선의 부분을 제거하려고합니다. 즉 거짓이 도넛 형 차트 외부에서 시작되도록합니다. 코드가 사용하고 나에게 내가 나의 요구에 착륙 할 수있는 수정을 제안하십시오d3 도넛 형 차트에 나타나는 레이블 선을 제거 하시겠습니까?

var outerArc = d3.arc() 
      .outerRadius(radius * 0.9) 
      .innerRadius(radius * 0.9); 

function midAngle(d) { return d.startAngle + ((d.endAngle - d.startAngle))/2; } 
    if (lablesettings.show) { 

     var enteringLabels = svg.selectAll(".polyline").data(pie(viewModel.dataPoints)).enter(); 
     var labelGroups = enteringLabels.append("g") 
             .attr("class", "polyline") 
             .style("fill", "none") 
             .style("stroke", "grey") 
             .style("stroke-width", "1px") 
             .style("opacity", "0.4"); 

     var line = labelGroups.append("polyline").attr('points', function (d) { 
      var arccentroid = arc.centroid(d); 
      var pos = outerArc.centroid(d); 
      pos[0] = radius * 0.95 * (midAngle(d) < Math.PI ? 1 : -1); 
      //var fpos=((arccentroid[0]+pos[0])/2 (arccentroid[1]+pos[1])/2); 
      return [arc.centroid(d), outerArc.centroid(d), pos 
     }); 

입니다. 미리 감사드립니다.

+0

단순한 솔루션입니까? 간단히 레이블과 선을 그리고 그 위에 파이를 그 으십시오. – Florian

답변

0

코드가 불완전합니다. 포인트 배열은 재미있는 곳에서 멈 춥니 다. 그 진술의 나머지 부분을 게시 할 수 있습니까?

내가 지금까지 본 것부터 points 배열에서 arc.centroid(d)을 제거한다고 말하고 싶습니다.

관련 문제