yAn*_*Tar 3 legend pie-chart nvd3.js
我需要PieChart中的垂直传奇.现在库只提供2个选项:top/right.如果使用权 - 图例在几列中.我需要一栏中的传奇.
我找到了一个hack - 正确的转换值并将图例放在一列中.
  var positionX = 30;
  var positionY = 30;
  var verticalOffset = 25;
  d3.selectAll('.nv-legend .nv-series')[0].forEach(function(d) {
    positionY += verticalOffset;
    d3.select(d).attr('transform', 'translate(' + positionX + ',' + positionY + ')');
  });
解决方法是更新每次单击和双击.nv-legend的图例.
(function() {
  var h = 600;
  var r = h / 2;
  var arc = d3.svg.arc().outerRadius(r);
  var data = [{
    "label": "Test 1",
    "value": 74
  }, {
    "label": "Test 2",
    "value": 7
  }, {
    "label": "Test 3",
    "value": 7
  }, {
    "label": "Test 4",
    "value": 12
  }];
  var colors = [
    'rgb(178, 55, 56)',
    'rgb(213, 69, 70)',
    'rgb(230, 125, 126)',
    'rgb(239, 183, 182)'
  ]
  nv.addGraph(function() {
    var chart = nv.models.pieChart()
      .x(function(d) {
        return d.label
      })
      .y(function(d) {
        return d.value
      })
      .color(colors)
      .showLabels(true)
      .labelType("percent");
    d3.select("#chart svg")
      .datum(data)
      .transition().duration(1200)
      .call(chart);
    var svg = d3.select("#chart svg");
    function updateLegendPosition() {
      svg.selectAll(".nv-series")[0].forEach(function(d, i) {
        d3.select(d).attr("transform", "translate(0," + i * 15 + ")");
      })
    }
    svg.select('.nv-legend').on("click", function() {
      updateLegendPosition();
    });
    svg.select('.nv-legend').on("dblclick", function() {
      updateLegendPosition();
    });
    updateLegendPosition();
    return chart;
  });
}())@import url(http://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans+Mono);
#chart svg {
  height: 600px;
}
.nv-label text{
    font-family: Droid Sans;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.1.15-beta/nv.d3.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.1.15-beta/nv.d3.min.js"></script>
<div id="chart">
  <svg></svg>
</div>| 归档时间: | 
 | 
| 查看次数: | 2843 次 | 
| 最近记录: |