javascript - D3。数据问题

标签 javascript d3.js

翻译(NaN,NaN)。在 v4 中:

var bubble = d3.pack()
    .size([diameter, diameter])
    .padding(2);
var root = d3.hierarchy({"children": data.values})
console.log(bubble(root).children);
var node = svg.selectAll(".node")
              .data(bubble(root).children)
              .enter().append("g")
              .attr("class", "node")
              .attr("transform", function (d) { return "translate(" + [d.x, d.y] + ")"; });

在 v3 中正确:

var bubble = d3.layout.pack()
               .sort(null)
               .size([diameter, diameter])
               .padding(2);
var root = {"children": data.values}
console.log(bubble.nodes(root).children);
var node = svg.selectAll(".node")
              .data(bubble.nodes(root)
              .filter(function (d) { return !d.children; }))
              .enter().append("g")
              .attr("class", "node")
              .attr("transform", function (d) { return "translate(" + d.x + "," + d.y + ")"; });

在 v3 控制台中,“r”有一个值。但在 v4 中则不然。我认为这是数据导入的问题。

最佳答案

要拥有 xyr 属性,您必须将函数传递给 sum()d3.hierarchy() 中。

根据API :

You must call node.sum or node.count before invoking a hierarchical layout that requires node.value

由于我不知道您的数据结构,因此我创建了这个虚拟数组:

var data = {
    children: [{
        name: "foo",
        size: 50
    }, {
        name: "bar",
        size: 20
    }, {
        name: "baz",
        size: 40
    }]
};

这是使用 sum() 的代码,请检查控制台:

var data = {
    children: [{
        name: "foo",
        size: 50
    }, {
        name: "bar",
        size: 20
    }, {
        name: "baz",
        size: 40
    }]
};

var diameter = 500;

var bubble = d3.pack()
    .size([diameter, diameter])
    .padding(2);

var root = d3.hierarchy(data)
    .sum(function(d) {
        return d.size;
    });;

console.log(bubble(root).children);
<script src="https://d3js.org/d3.v4.min.js"></script>

关于javascript - D3。数据问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41889166/

相关文章:

javascript - 为什么 document.querySelector() 函数不能与 html5 代码一起使用?

javascript - Java AES/ECB/PKCS5Padding 加密到 crypto-js 解密

javascript - 使用自定义函数在 d3.js 中创建元素

javascript - 在 d3tip 工具提示中嵌入 svg 形状

javascript - D3条形图排序-需要轴标签排序逻辑解释

javascript - d3.js 中的进入和退出是什么?

javascript - D3 : Tree diagram with images and circles as nodes

javascript - CKeditor 4 皮肤的 editor.css 未附加在不同页面上创建实例时

javascript - 如何判断代码是否在try catch block 下

javascript - 当 JavaScript 触发回发时,哪个控件导致 aspx 页面回发