d3.js 초보자로서 네트워크 시각화 문제를 만났습니다. 나는 여러 가지 방법으로 그것을 고치려고했지만 불행하게도 아무 것도 잘 작동하지 않습니다. 그래서 조언이 정말로 필요합니다. 누군가가 나를 도울 수 있으면 행복 할 것입니다. 5624 : : 내 JSON 컨트롤러에서 생성이처럼 보이는d3.js, 네트워크 시각화
Uncaught TypeError: Cannot read property 'weight' of undefined
:
{ "nodes" :
[{ "Name" : "One", "Weight" : 903 },
{ "Name" : "Two", "Weight" : 502 },
...
],
"links" :
[{ "Source" : "One", "Target" : "Two", "Volume" : 2 },
{ "Source" : "Two", "Target" : "Five", "Volume" : 1 },
...
]
}
그래서 내가
를 호출하고있어 나는 d3.v3.js에 오류를 받고 있어요return Json(network, JsonRequestBehavior.AllowGet);
클래스 네트워크 :
public class Network
{
public List<NetworkNodes> nodes {get; set;}
public List<NetworkLinks> links{ get; set;}
public Network(List<NetworkNodes> a, List<NetworkLinks> b)
{
nodes = a;
links = b;
}
}
그 자체로 0
그리고 스크립트 : 내가 아는
$(document).ready(function() {
var width = 1500,
height = 1500;
var force = d3.layout.force()
.charge(-100)
.linkDistance(30)
.size([width, height]);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
$.getJSON('@Url.Action("BuildNetwork", "Query")', function (graph) {
// Compute the distinct nodes from the links.
force
.nodes(graph.nodes)
.links(graph.links)
.start();
var link = svg.selectAll(".link")
.data(graph.links)
.enter().append("line")
.attr("class", "link")
.style("stroke-width", function (d) { return Math.sqrt(d.Value); });
var node = svg.selectAll(".node")
.data(graph.nodes)
.enter().append("circle")
.attr("class", "node")
.attr("r", 5)
.call(force.drag);
node.append("title")
.text(function (d) { return d.Name; });
force.on("tick", function() {
link.attr("x1", function (d) { return d.Source.x; })
.attr("y1", function (d) { return d.Source.y; })
.attr("x2", function (d) { return d.Target.x; })
.attr("y2", function (d) { return d.Target.y; });
node.attr("cx", function (d) { return d.x; })
.attr("cy", function (d) { return d.y; });
});
});
});
는, 내가 만든 바보 같은 실수 있습니다,하지만 난 이해하기 너무 바보 어디 링크 목록 :(
'@의 Url.Action ("BuildNetwork", "쿼리")'무엇을 반환하지 (here 참조) D3 위해 예약되어 있습니다? afaik,'$ .getJSON'은 JSON을 가진 파일에 대한 URL을 취합니다. 그런 식으로 사용할 수 있는지 확실하지 않습니다. 또한 오류는 'weight'값을보고합니다. JSON에서는 'Weight'값을가집니다 ... 첫 문자의 대소 문자를 알 수 있습니다 ... – Joum
json에 해당 할 수 있습니까? 표시된 오류는 소문자입니까? – BentOnCoding
나는 "무게"와 더불어 가능한 모든 수정을 시도하고 있었다. 불행히도 문제는 여전히 여기에 있습니다 : ( –