javascript - 在 dc.js 中为饼图标签添加百分比

标签 javascript d3.js dc.js crossfilter

我有一个饼图,我想为其标签添加百分比。这是一个jsfiddle饼图和代码如下。现在图表显示实际值。我看着 dc.js Getting Started and How-To Guide这是仪表板的一个例子。它在标签中包含带有百分比的图表。但是,当我尝试复制结构时出现错误。例如,当我像这样使用标签功能时

.label(function(d) {if(all.value){return d.key + " " + d.value / all.value();}
.renderLabel(true)

在控制台中它说所有的都没有定义。此外,d.key 也不返回任何内容。我想我的数据有不同的结构。帮助表示赞赏。谢谢。

HTML

<body>
    <div id='Chart'>
    </div>
</body>

JS

var ndx = crossfilter(data);

var XDimension = ndx.dimension(function (d) {
    return d.Category;
});

var YDimension = XDimension.group();

dc.pieChart("#Chart")
    .width(480).height(300)
    .dimension(XDimension)
    .group(YDimension)
    .label(function(d){return d.value});

dc.renderAll();

数据

var data = [{
    Category: "A",
    ID: "1"
}, {
    Category: "A",
    ID: "1"
}, {
    Category: "A",
    ID: "1"
}, {
    Category: "A",
    ID: "2"
}, {
    Category: "A",
    ID: "2"
}, {
    Category: "B",
    ID: "1"
}, {
    Category: "B",
    ID: "1"
}, {
    Category: "B",
    ID: "1"
}, {
    Category: "B",
    ID: "2"
}, {
    Category: "B",
    ID: "3"
}, {
    Category: "B",
    ID: "3"
}, {
    Category: "B",
    ID: "3"
}, {
    Category: "B",
    ID: "4"
}, {
    Category: "C",
    ID: "1"
}, {
    Category: "C",
    ID: "2"
}, {
    Category: "C",
    ID: "3"
}, {
    Category: "C",
    ID: "4"
}, {
    Category: "C",
    ID: "4"
},{
    Category: "C",
    ID: "5"
}];

最佳答案

你很接近!在这种情况下,我建议您执行以下操作:

.label(function(d) {
    console.log(JSON.stringify(d));
})

了解您的数据结构。如果你这样做,你会看到 keyvalued.data 下,所以你可以有一个像

.label(function(d) {
    return d.data.key + ' ' + d.data.value + '%';
})

如果您只想计算显示的圆的分数,您可以使用 startAngleendAngle 属性。

.label(function(d) {
    return d.data.key + ' ' + Math.round((d.endAngle - d.startAngle) / Math.PI * 50) + '%';
});

(d.endAngle - d.startAngle) 将为您提供切片显示的弧度数,因此您可以从那里除以圆中的弧度数来计算百分比。

关于javascript - 在 dc.js 中为饼图标签添加百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25209971/

相关文章:

javascript - CasperJS/PhantomJS 不加载 https 页面

javascript - 带有可选(多个)逗号和小数点的 JavaScript float 的正则表达式

javascript - 如何在 React JSX 中除最后一个元素之外的每个元素之后在 array.map 中添加一个逗号

javascript - 带日期 slider 的 D3 折线图

javascript - Rowchart 在 dc.js/crossfilter 中只选择一个条形图?

javascript - 需要在 Javascript 中有淡出效果

javascript - 调整 D3 强制布局

javascript - 使用相似的源代码加载多个 D3 map

dc.js - 如何在 dc.js numberDisplay 中获取动态字段计数?

dc.js - 需要定制reducer来扣除两个值