2014-11-10 3 views
0

d3을 사용하여 강제 지시문 네트워크를 생성하려고합니다. 데이터 세트는 기업 간 제휴의 목록이며, 다음과 같습니다확장 및 축소 (d3.js)로 강제 지시 그래프

[ { "company1": "마이크로 소프트", "company2": "퀄컴" }, { "company1": "Microsoft", "company2": "Qualcomm Inc." }는 ... 시각화]

주요 기능은 다음과 같습니다

  1. /확장 네트워크를 축소해야 노드 (즉, 회사)를 더블 클릭. 확장 된 노드는 파란색으로 표시되고 펼쳐지지 않은 노드는 회색으로 표시됩니다.
  2. 노드를 가리키면 노드와 해당 파트너가 강조 표시됩니다.
  3. 노드를 접을 때 파트너가 화면에서 활성 또는 확장 된 다른 링크를 가지고 있으면 해당 링크가 종료되지 않아야하며 해당 파트너를 제거해서는 안됩니다.

내가 무엇을 가지고 작업 : 문제가 무엇

위에서 언급 한 모든 기능 : 현재, 나는 전체 시각화를 새로 고침하고 그것에게 새로운 노드를 추가하거나 확장 할 때마다 다시 그립니다 있어요/쓰러졌다. 이 일을하는 동안, 노드 중 일부는 화면의 왼쪽 상단 모서리에 가서 나는 오류가 점점 계속 :

error: Invalid value for <g> attribute transform="translate(NaN,NaN)" d3.v3.min.js:1  
Error: Invalid value for <line> attribute x2="NaN" d3.v3.min.js:1  
Error: Invalid value for <line> attribute y2="NaN" d3.v3.min.js:1  
Error: Invalid value for <g> attribute transform="translate(NaN,NaN)".... 

나는 불행하게도이 문제와 다른 문제라고하지만 한을 정확히 이유를 이해 할 수없는입니다 내 사건에서 이런 일이 일어난다. 이 현상은 일반적으로 화면의 현재 노드가 움직이고 화면에 노드를 추가/제거 할 때 발생합니다.

http://jsfiddle.net/bmp7qnx0/4/ (나는 시각화가 그 일을의 올바른 방법이 아니다 나는 비 다시 시작 코드 작업을하고있다 "상쾌한"실현 : 여기

현재 작업 코드의 바이올린 링크입니다 그 코드에 대한 몇 가지 문제에 직면하고 있습니다. 곧 필 요할 경우 동일한 바이올린 링크를 게시 할 예정입니다.) 지금 당장이 문제에 대한 내 관찰을 바탕으로 5 초 제한 시간을 사용했습니다.

지금 당장은 누군가가 필자에게 내가 제공 한 것과 정확히 무엇이 오류를 일으키고 있는지 알려주고 "다시 그리기"논리를 사용하지 않고 시각화 작업을 수행 할 수있는 방법이 있다면 정말 고맙습니다.

답변

2

솔루션 :이 비슷한 문제로 범프 사람을 도움이 그냥 경우

: 내가 다시 사용하던 나는 새 노드/링크를로드 할 때 내 힘 레이아웃 객체를. 틱 타이머가 계속 작동하고있는 것으로 나타났습니다. 새로운 데이터를로드 할 때 force.stop()을 호출하여 해제하면 문제가 해결됩니다.

관련 문제