从 json 文件获取 D3 气泡图的数据
Getting data from json file for D3 bubble chart
我正在尝试根据 d3 wiki 中的示例创建气泡图。 http://bl.ocks.org/mbostock/4063269
很遗憾,我还处于 javascript 的初学者水平,不理解某些代码。
json的布局在这里:http://pastebin.com/QAMBfLjr
我想创建圆圈并以值命名它们,并让它们的大小基于计数。
看来我需要修改的代码是这样的:
function recurse(name, node) {
if (node.children) node.children.forEach(function(child) { recurse(node.name, child); });
else classes.push({packageName: name, className: node.name, value: node.size});
}
所以我用子实例替换我想在 json 中迭代的路径。然后我更改我想要的键的名称。
facet_counts.facet_pivot["category_level0,category_level1,category_level2,category_level3"]
所以这段代码看起来像:
function recurse(name, node) {
if (node.facet_counts.facet_pivot["category_level0,category_level1,category_level2,category_level3"]) node.facet_counts.facet_pivot["category_level0,category_level1,category_level2,category_level3"].forEach(function(child) { recurse(node.value, child); });
else classes.push({packageName: value, className: node.value, value: node.count});
}
但这不起作用。我在页面上没有看到任何内容,控制台输出显示:
Uncaught TypeError: Cannot read property 'facet_pivot' of undefined
有人可以帮我指明正确的方向吗?
谢谢!
添加 jsfiddle:http://jsfiddle.net/jwhite/4o6tbe0w/
所以我想通了。我没有看到我正在使用的 json 文件的格式与示例提供的格式不同。
在开发控制台上玩了一会儿之后,我发现我必须将 processData 函数编辑为以下内容:
function processData(data) {
var obj = data.facet_counts.facet_pivot["category_level0,category_level1,category_level2,category_level3"];
var newDataSet = [];
for(var prop in obj) {
newDataSet.push({name: obj[prop].value, className: obj[prop].value.toLowerCase(), size: obj[prop].count});
}
return {children: newDataSet};
}
我正在尝试根据 d3 wiki 中的示例创建气泡图。 http://bl.ocks.org/mbostock/4063269
很遗憾,我还处于 javascript 的初学者水平,不理解某些代码。
json的布局在这里:http://pastebin.com/QAMBfLjr
我想创建圆圈并以值命名它们,并让它们的大小基于计数。
看来我需要修改的代码是这样的:
function recurse(name, node) {
if (node.children) node.children.forEach(function(child) { recurse(node.name, child); });
else classes.push({packageName: name, className: node.name, value: node.size});
}
所以我用子实例替换我想在 json 中迭代的路径。然后我更改我想要的键的名称。
facet_counts.facet_pivot["category_level0,category_level1,category_level2,category_level3"]
所以这段代码看起来像:
function recurse(name, node) {
if (node.facet_counts.facet_pivot["category_level0,category_level1,category_level2,category_level3"]) node.facet_counts.facet_pivot["category_level0,category_level1,category_level2,category_level3"].forEach(function(child) { recurse(node.value, child); });
else classes.push({packageName: value, className: node.value, value: node.count});
}
但这不起作用。我在页面上没有看到任何内容,控制台输出显示:
Uncaught TypeError: Cannot read property 'facet_pivot' of undefined
有人可以帮我指明正确的方向吗?
谢谢!
添加 jsfiddle:http://jsfiddle.net/jwhite/4o6tbe0w/
所以我想通了。我没有看到我正在使用的 json 文件的格式与示例提供的格式不同。
在开发控制台上玩了一会儿之后,我发现我必须将 processData 函数编辑为以下内容:
function processData(data) {
var obj = data.facet_counts.facet_pivot["category_level0,category_level1,category_level2,category_level3"];
var newDataSet = [];
for(var prop in obj) {
newDataSet.push({name: obj[prop].value, className: obj[prop].value.toLowerCase(), size: obj[prop].count});
}
return {children: newDataSet};
}