Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在对象上迭代以将信息放入d3圆圈中_Javascript_D3.js - Fatal编程技术网

Javascript 在对象上迭代以将信息放入d3圆圈中

Javascript 在对象上迭代以将信息放入d3圆圈中,javascript,d3.js,Javascript,D3.js,因此,我正在迭代将信息插入到一个圆形对象中进行显示 <script type="text/javascript"> var data = d3.json("example.json", function(error, data){ console.log("I'm working"); console.log(data); var svg = d3.select("svg"); console.log(data.length); for (i

因此,我正在迭代将信息插入到一个圆形对象中进行显示

<script type="text/javascript">
var data = d3.json("example.json", function(error, data){
    console.log("I'm working");
    console.log(data);
    var svg = d3.select("svg");
    console.log(data.length);
    for (i = 0; i < data.length; i ++) {
        svg.append("circle")
            .attr("cx", Math.random()*500)
            .attr("cy", Math.random()*500)
            .attr("r", 25)
            .attr("fill", "red")
            .append("text")
            .text(function(d) { return data[i].name } )
            .attr('dx', function(d) {return '1em';})
    .attr('dy', function(d) {return (0.08*this.parentNode.getBBox().height/2 + 0.5)+'em';})
    }
    svg.selectAll("circle").attr("fill", "red");
    svg.selectAll("text").attr("fill", "black")
})

var data=d3.json(“example.json”),函数(错误,数据){
log(“我正在工作”);
控制台日志(数据);
var svg=d3.选择(“svg”);
console.log(data.length);
对于(i=0;i


到目前为止,我已将信息附在每个圆圈上。但是,我仍然无法显示对象的名称,我不知道如何通过数据显示连接。

您不能这样定义文本回调

.text(function(d) { return data[i].name } )
通过这样做,我将始终设置为10,因为它是for循环结束时的值,之后您似乎不会更改它。你有很多解决方案下面的不是最好的,但应该可以,一个更干净的解决方案可以用d3文档和回调中的d参数创建

.text(function(d) { return data[this.i].name }.bind({i : i}) )

这不是使用d3的正确方法。这个链接的问题实际上很好,希望能帮助你理解如何正确使用d3。还有一个关于圆的教程:。tl;dr:绑定数据,不要自己迭代。虽然这解决了回调问题,但这确实不是使用d3的正确方法。