gpt4 book ai didi

javascript - 基本 D3.js : using data keys?

转载 作者:行者123 更新时间:2023-11-29 22:21:20 26 4
gpt4 key购买 nike

这应该是一个相当简单的 D3 问题。我正在将数据绑定(bind)到一些圈子,这是数据:

var linedata = [{ x:10, y:20},{x:5, y:30}];

这是圆圈:

var line = d3.svg.line().x(function(d) {
return x(d.x);
}).y(function(d) {
return y(d.y);
});
context.selectAll(".dot")
.data(linedata).enter()
.append("circle")
.attr("class", "dot")
.attr("cx", line.x())
.attr("cy", line.y())
.attr("r", 2);

但是,如果我想更改数据和代码以使用一些数据键,以便圆圈附加类:

var mydata = [{ name: 'LHR', data: [{ x:10, y:20}, {x:5, y:15} ], { name: 'SFO', data : [{x:5, y:30}, {x:4, y:8}] }];

我知道如何编辑类属性以使用数据键,但如何编辑 cx 和 cy 属性?

context.selectAll(".dot")
.data(mydata).enter()
.append("circle")
.attr("class", function(d) { return "dot " + d.name; })
.attr("cx", line.x())
.attr("cy", line.y())
.attr("r", 2);

我已经尝试了以下方法,但它不起作用:

.attr("cx", function(d) { return line.x(d.data); })

这似乎是将函数本身分配给 cx 属性。我做错了什么?

最佳答案

您的 mydata 变量在数据数组后缺少一个 } 以关闭主数组中的对象。也许这是个问题?

此外,当您传递 d.data 时,您传递的是一个数组。也许尝试传递 d.data[1] 或您想要的任何数组项。

编辑:您可能想使用 .attr('cx', function(d, i) { return line.x(d.data[i]); }

关于javascript - 基本 D3.js : using data keys?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278876/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com