json - 无法将 JSON 绑定(bind)到 d3

标签 json d3.js bind

我进行了广泛的搜索,但始终无法将 JSON 数据绑定(bind)到简单的散点图。我查看了帖子和示例,但我只能绑定(bind)数组而不是 JSON。下面,我尝试简单地将 JSON 数据显示为文本,但仍然无法使其工作。如果您知道原因,请告诉我!

d3_attempt.js

var data;

d3.json("json_data.json",function(error, dataset) {
    if (error) return console.warn(error);

    data = dataset;

    var myscatter = d3.select("#somediv").append("svg")
                    .attr("width", 700)
                    .attr("height", 400);

    myscatter.selectAll("text")
        .data(data.data)
        .enter()
        .append("text")
        .text(function(d){return d)})
});

json_data.json

{
    "data":
    {
        "john": {"name": "john", "age": "13"},
        "matt": {"name": "matt", "age":"14"}
    }
}

最佳答案

是的,您只能绑定(bind)数组,因此您可能希望将数据转换为数组:

myscatter.selectAll("text")
    .data(d3.values(data.data));

这将为每个 text 节点提供 { name,age } 对象作为数据。如果您也需要键(在本例中看起来不需要),您可以使用 d3.entries,它为您提供一个对象数组,例如 { key: "john", value :{姓名:“约翰”,年龄:“13”}}

关于json - 无法将 JSON 绑定(bind)到 d3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18385836/

相关文章:

javascript - 将不带引号的json字符串解析成json

php - 查询以从 php 中的 JSON 中按数据值显示列数据行组

json - NodeJS 写入日志文件(Json)

javascript - D3.js 不会拖动+尝试聚焦

php - 使用参数数组绑定(bind) Param

javascript - twitter bootstrap typeahead(未定义的方法 'toLowerCase')

javascript - 在单页上绘制多个图表时出现问题

javascript - 将 y 轴网格线添加到 D3 甘特图

java - 如何将imageview绑定(bind)到数组索引mvvm javafx

javascript - 'bind to click event' 范围的解释