我正在学习d3.有一些方法可以在d3 js 中加载数据.但他们似乎都在制作HTTP GET.在我的场景中,我已经将json数据放在一个字符串中.如何使用此字符串而不是发出另一个http请求?我试图为此寻找文档,但没有找到.
这有效:
d3.json("/path/flare.json", function(json) {
//rendering logic here
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我有:
//assume this json comes from a server (on SAME DOMAIN)
var myjson = '{"name": "flare","children": [{"name": "analytics","children": [{"name": "cluster","children": [{"name": "MergeEdge", "size": 10 }]}]}]}';
Run Code Online (Sandbox Code Playgroud)
如何在d3中使用已计算的'myjson'并避免对服务器的异步调用?谢谢.
图库中的大多数示例都是从TSV文件加载数据.
如何转换以下内容以使用本地json变量而不是TSV数据?
d3.tsv("data.tsv", function(error, data) {
var myEntitiesJson = getEntitiesJson(); // <------ use this instead of "data"
data.forEach(function(d) {
d.frequency = +d.frequency;
});
x.domain(data.map(function(d) { return d.letter; }));
y.domain([0, d3.max(data, function(d) { return d.frequency; })]);
...
svg.selectAll(".bar")
.data(data) // <----- bind to myEntities instead
}
Run Code Online (Sandbox Code Playgroud)
据我所知,我只需要对我的entitiesJson做一些事情,以便对数据进行数据处理,以便图表可以绑定到它.
UPDATE
我正在取得一些进展.我从JSON插入了我的实体,图形开始呈现出新的形状.
目前以下代码中断:
svg.selectAll(".bar")
.data(myEntities) // <-- this is an array of objects
.enter().append("rect")
Run Code Online (Sandbox Code Playgroud)
这导致:
错误:属性y ="NaN"的值无效
错误:属性height ="NaN"的值无效
我有一个扁平的json文件结构,如:
[
{ "name" : "ABC", "parent":"DEF", "relation": "ghi", "depth": 1 },
{ "name" : "DEF", "parent":"null", "relation": "null", "depth": 0 },
{ "name" : "new_name", "parent":"ABC", "relation": "rel", "depth": 2 }
....
....
]
Run Code Online (Sandbox Code Playgroud)
我想要的是一个嵌套的文件结构,如:
[
{
"name": "DEF",
"parent": "null",
"relation": "null",
"children": [
{ "name": "ABC",
"parent": "DEF",
"relation": "ghi",
"children": [
"name": "new_name",
...
"children": []
]
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
它的深度应该没有限制.我当前的最大值是30.节点可以拥有的子节点数没有限制.例如.根节点将所有剩余的节点作为其子节点.
我到现在为止尝试过什么?
阅读有关d3.nest()及其如何嵌套但不完美的信息. https://groups.google.com/forum/?fromgroups=#!topic/d3-js/L3UeeUnNHO8/discussion
为此写了一个python脚本,但是它被空值所困,并且由于数据没有限制(它每天以两位数增加)所以它非常慢.
我尝试了强制定向布局并且它工作得很好,但我想添加另一种布局,使可视化变得容易.
我可以使用其他一些python脚本发布,但它们似乎没有提供除"名称"和"孩子"之外的任何其他信息.
我读到了这个:http://blog.pixelingene.com/2011/07/building-a-tree-diagram-in-d3-js/ 但他们也拥有正确的格式数据.我打算创建的是http://bl.ocks.org/mbostock/4339083.
数据源是我正在通过python获取和解析的MS …
我是 D3 可视化的新鲜蜜蜂。目前正在为数据沿袭创建 D3 树布局可视化。在数据沿袭流中,可以从多个父节点派生一个子节点。这是示例。在下面的示例中,“DevLead”可能与 2 个经理一起工作。
var data = [
{ "name": "Director", "parent": "null", "depth": 0 },
{ "name": "Manager1", "parent": "Director", "depth": 1 },
{ "name": "Manager2", "parent": "Director", "depth": 1 },
{ "name": "DevLead", "parent": "Manager1", "depth": 2 },
{ "name": "DevLead", "parent": "Manager2", "depth": 2 }
];
Run Code Online (Sandbox Code Playgroud)
获取输出请参考下图。
我希望看到“DevLead”孩子应该只展示一个,并且应该从“Manager1”和“Manager2”派生出来。任何人都可以帮助解决这个问题。