d3.js - 填充饼图圆环图 d3 的内部

标签 d3.js nvd3.js

Example 我正在尝试使用 d3 创建上面的图像

http://jsfiddle.net/Spwizard/LBzx7/1/

var dataset = {
hddrives: [20301672, 9408258, 2147483, 21474836, 35622,32210000],
};

var width = 460,
height = 300,
radius = Math.min(width, height) / 2;

var color = d3.scale.ordinal()
.range(["#2DA7E2"]);

var pie = d3.layout.pie()
.sort(null);

var arc = d3.svg.arc()
.innerRadius(radius - 100)
.outerRadius(radius - 70);

var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");

var path = svg.selectAll("path")
.data(pie(dataset.hddrives))
  .enter().append("path")
 .attr("class", "arc")
.attr("fill", function(d, i) { return color(i); })
.attr("d", arc);
svg.append("text")
  .attr("dy", ".35em")
  .style("text-anchor", "middle")
  .attr("class", "inside")
  .text(function(d) { return '56%'; });
svg.append("text")
   .attr("dy", "2em")
  .style("text-anchor", "middle")
  .attr("class", "data")
  .text(function(d) { return 'some text'; });

我正在努力了解如何处理内圈的背景颜色以及处理剩余的存储空间

谢谢

最佳答案

要获得“背景”,您可以添加另一个具有相应填充颜色的圆圈。为了处理可用空间,您可以有选择地将其中一个片段的不透明度设置为 0。在您的示例中,我对最后一个切片执行了此操作:

.style("opacity", function(d, i) { return i == dataset.hddrives.length - 1 ? 0 : 1; })

完整示例(OP提供)here .

关于d3.js - 填充饼图圆环图 d3 的内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21758052/

相关文章:

javascript - 为什么 D3.js 不显示任何内容? (RoR申请)

javascript - 使用 D3 对两条线之间的区域进行阴影处理

javascript - 如何在具有缩放功能的时间轴中的 d3 v4 中添加过滤器或 ScaleExtent

d3.js - NVD3.js multiChart x 轴标签与线条对齐,但不与条形对齐

charts - nvd3堆积面积图看起来有问题如何解决?

javascript - 交互式图表(由 dc.js 提供)无法正确相互更新

javascript - 图例放置 D3

javascript - Angular nvd3 堆栈面积图 - 扩展选项 - 0% 到 100% 范围

javascript - 防止 NVD3 图表轴出现负值

javascript - R Shiny 中的绘图,包括 Javascript (d3.js)