2017-05-23 7 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)を削除するとします。

関連する問題