2016-12-19 3 views
1

D3/nvd3の新機能です。 Bostockの円グラフに似た、線で「外側」のラベルを表示しようとしていますhttp://bl.ocks.org/dbuezas/9306799。私はどのようにnvd3でそのように表示されるようにラベル行にアプローチするのか分かりません。パイとラベルが正しく表示されています!ラベル行を表示する方法についてのご意見は高く評価されます。現在私が従っているアプローチは、nvd3(http://plnkr.co/edit/OlROrZ?p=preview)が提供する基本的な例に非常に似ています。円チャートラベルangle-nvd3の線

は、代わりにあなたが円グラフのラベルラインを達成するために、Highchartsを使用することができ、角度-nvd3の

var app = angular.module('plunker', ['nvd3']); 

app.controller('MainCtrl', function($scope) { 
$scope.options = { 
      chart: { 
       type: 'pieChart', 
       height: 450, 
       donut: true, 
       x: function(d){return d.key;}, 
       y: function(d){return d.y;}, 
       showLabels: true, 
       labelsOutside: true, 
       pie: { 
        startAngle: function(d) { return d.startAngle/2 -Math.PI/2 }, 
        endAngle: function(d) { return d.endAngle/2 -Math.PI/2 } 
       }, 
       duration: 500, 
       legend: { 
        margin: { 
         top: 5, 
         right: 70, 
         bottom: 5, 
         left: 0 
        } 
       } 
      } 
     }; 

     $scope.data = [ 
      { 
       key: "One", 
       y: 5 
      }, 
      { 
       key: "Two", 
       y: 2 
      }, 
      { 
       key: "Three", 
       y: 9 
      }, 
      { 
       key: "Four", 
       y: 7 
      }, 
      { 
       key: "Five", 
       y: 4 
      }, 
      { 
       key: "Six", 
       y: 3 
      }, 
      { 
       key: "Seven", 
       y: .5 
      } 
     ]; 
}); 

index.htmlを

<!DOCTYPE html> 
<html ng-app="plunker"> 

    <head> 
    <meta charset="utf-8" /> 
    <title>Angular-nvD3 Donut Chart</title> 
    <script>document.write('<base href="' + document.location + '" />');</script> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.8.1/nv.d3.min.css"/> 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js" charset="utf-8"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.8.1/nv.d3.min.js"></script> 
    <script src="https://rawgit.com/krispo/angular-nvd3/v1.0.5/dist/angular-nvd3.js"></script> 
    <script src="app.js"></script> 
    </head> 

    <body ng-controller="MainCtrl"> 

    <nvd3 options="options" data="data"></nvd3> 

    </body> 

</html> 
+0

あなたは、この問題の解決策を見つけましたか?私はそれを探しています。 –

答えて

0

をapp.js。 Run in jsfiddle

Highcharts.chart('container', { 
 
    chart: { 
 
     plotBackgroundColor: null, 
 
     plotBorderWidth: null, 
 
     plotShadow: false, 
 
     type: 'pie' 
 
    }, 
 
    title: { 
 
     text: 'Browser market shares January, 2015 to May, 2015' 
 
    }, 
 
    tooltip: { 
 
     pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>' 
 
    }, 
 
    plotOptions: { 
 
     pie: { 
 
      allowPointSelect: true, 
 
      cursor: 'pointer', 
 
      dataLabels: { 
 
       enabled: true, 
 
       format: '<b>{point.name}</b>: {point.percentage:.1f} %', 
 
       style: { 
 
        color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black' 
 
       } 
 
      } 
 
     } 
 
    }, 
 
    series: [{ 
 
     name: 'Brands', 
 
     colorByPoint: true, 
 
     data: [{ 
 
      name: 'IE', 
 
      y: 56.33 
 
     }, { 
 
      name: 'Chrome', 
 
      y: 24.03, 
 
      sliced: true, 
 
      selected: true 
 
     }, { 
 
      name: 'Firefox', 
 
      y: 10.38 
 
     }, { 
 
      name: 'Safari', 
 
      y: 4.77 
 
     }, { 
 
      name: 'Opera', 
 
      y: 0.91 
 
     }, { 
 
      name: 'Other', 
 
      y: 0.2 
 
     }] 
 
    }] 
 
});
<script src="https://code.highcharts.com/highcharts.js"></script> 
 
<script src="https://code.highcharts.com/modules/exporting.js"></script> 
 

 
<div id="container" style="min-width: 310px; height: 400px; max-width: 600px; margin: 0 auto"></div>