javascript - 如何获取 D3.js 饼图以从 DOM 动态呈现数据

标签 javascript html css d3.js pie-chart

我正在尝试使用 D3.js 制作一个饼图,一旦在 HTML 表单中单击提交按钮(询问女性和男性的总数),该饼图就会发生变化。

这是我目前拥有的 JavaScript 文件:

// Data
function getTotalFemales() {
    let total = document.getElementById('totalFemales').value;
    totals.push(parseFloat(total));
}

function getTotalMales() {
    let total = document.getElementById('totalMales').value;
    totals.push(parseFloat(total));
}

let totals = [];

// Dataset
var dataset = [
    {label: 'Female Count', count: 1},
    {label: 'Male Count', count: 1}
];

function updateChart() {
    dataset.count.forEach(function(num)
        dataset.count = totals[num]
    });

    console.log(totals);
}

这是 d3 部分:

var path = pieChart.selectAll('path')
        .data(pie(dataset))
        .enter()
        .append('path')
        .attr('d', arc)
        .attr('fill', function(d, i) {
        return color(d.data.label);
    });

关于如何让数据集数组中的计数属性根据用户的表单值进行更改,我有什么想法吗?

最佳答案

获取输入值并直接将它们放入数据集中。我认为不需要总计数组。

并设置数据集对象数组的属性,

  var dataset = [
    {label: 'Female Count', count: 1},
    {label: 'Male Count', count: 1}
];

    function getTotals() {
        dataset[0].count = document.getElementById('totalFemales').value;
        dataset[1].count = document.getElementById('totalMales').value;
    }

关于javascript - 如何获取 D3.js 饼图以从 DOM 动态呈现数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46586752/

相关文章:

javascript - 如何使客户网站的访问者始终检索第 3 方 .js 库的最新版本

html - 图片 Alt 标签/标题默认左对齐。我怎样才能改变到中心

PHP自动回复消息在添加回复到MySQL数据库之前需要暂停

javascript - FireFox 上的 CSS 溢出隐藏问题

html - 是否有允许构建跨浏览器兼容的 html 和 css 代码的程序或框架?

javascript - 避免在 FB.ui 上进行确认

javascript - 在 Angular ionic 应用程序中添加 native 转换插件时出现错误

javascript - 如何在折叠导航栏中的 li 之间添加空间

css - Bootstrap Glyphicon 与文本框对齐

javascript - Ractive 的代理负载是如何工作的?