我进行了广泛的搜索,但是在我的生活中无法将JSON数据绑定到简单的散点图。我查看了帖子和示例,但我只能设法绑定数组而不是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"}
}
}
答案 0 :(得分:2)
是的,您只能绑定数组,因此您可能希望将数据转换为数组:
myscatter.selectAll("text")
.data(d3.values(data.data));
这将为您的text
个节点提供{ name, age }
个对象作为数据。如果您也需要密钥(在这种情况下看起来不需要),您可以使用d3.entries
,它会为您提供一组对象,如{ key: "john", value: { name: "John", age: "13" }}
。