从D3获取json值键对的值

时间:2014-02-16 20:41:02

标签: javascript json d3.js

我正在使用D3从json数组中绘制线条。我可以从x和y坐标获取它的值,但我正在尝试获取行名称并将其分配给路径对象id但是获得所有类型的[object object}错误。 我正在使用的数组是:    [{name:“line1”,x:1,y:1},{name:“line1”,x:1,y:2},{name:“line1”,x:1,y:5},]

对于不同的行,它们是相同的,并且重复名称,因为我可能需要在每个数据点。

代码是:

var width = 500,
        height = 500,
        margin = 50,
        x = d3.scale.linear()
                .domain([0, 10])
                .range([margin, width - margin]),
        y = d3.scale.linear()
                .domain([0, 10])
                .range([height - margin, margin]);


var actionsD3 = [
[ {name: "line1", x: 1, y: 1},{name: "line1", x: 2, y: 2},{name: "line1", x: 3, y: 5},]
];

var line = d3.svg.line()
        .x(function(d){return x(d.page);})
        .y(function(d){return y(d.characterid);});

var lineName = d3.select()
        .jsonData(function(d){return (d.name);});

svg.attr("height", height)
        .attr("width", width);

function render(data) {
        svg.selectAll("path")
                        .data(data)
                .enter()
                        .append("path")
                        .attr("class", "line")
                        .attr("id",function(d){return lineName(d);})
                        .attr("d", function(d){return line(d);});
}

render(actionsD3);

我想要的是与使用d.x和d.y获取x和y值的行相同。 但我似乎总是得到这对或阵列。

由于

1 个答案:

答案 0 :(得分:1)

您发布的代码不起作用,但根据您的描述,它将类似于.attr("id", function(d) { return d[0].name; })。这个想法是你传入一个指定该行的数组并从该行的第一个点获取ID。