相关疑难解决方法(0)

D3力导向图,根据数据和值给出不同的形状?

我已经制作了一个力导向图,我想改变数据的节点形状,因为"entity":"company"它们将具有矩形形状,而没有这部分数据的其他数据将是现在的圆形.

你可以在这里看到我的工作示例只有圆形节点:http://jsfiddle.net/dzorz/uWtSk/

我试图if else在代码的一部分中添加带有语句的矩形,其中我将形状附加到节点,如下所示:

function(d)
    {
        if (d.entity == "company")
        {
            node.append("rect")
                .attr("class", function(d){ return "node type"+d.type})
                .attr("width", 100)
                .attr("height", 50)
                .call(force.drag);
        }
        else
        {
        node.append("circle")
            .attr("class", function(d){ return "node type"+d.type})
            .attr("r", function(d) { return radius(d.value) || 10 })
            //.style("fill", function(d) { return fill(d.type); })
            .call(force.drag);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是在任何节点上我都没有任何形状.

什么是正确的设置方法?

整个代码如下所示:脚本:

var data = {"nodes":[
                        {"name":"Action 4", "type":5, "slug": "", "value":265000},
                        {"name":"Action 5", "type":6, "slug": "", "value":23000},
                        {"name":"Action 3", "type":4, "slug": "", "value":115000}, …
Run Code Online (Sandbox Code Playgroud)

javascript shapes d3.js force-layout

10
推荐指数
2
解决办法
7693
查看次数

标签 统计

d3.js ×1

force-layout ×1

javascript ×1

shapes ×1