2017-10-30 19 views
1

그래프의 노드에 파일 크기가 가중되는 파일 시스템의 트리 표현을 만들려면 data.treeNetworkD3을 R에 사용하려고합니다.네트워크 설정 D3 노드 가중치 벡터가있는 노드

library(data.tree) 
library(networkD3) 

repo <- Node$new("Repository") 
git <- repo$AddChild(".git") 
prod <- repo$AddChild("Production") 
exp <- repo$AddChild("Experimental") 

repo$size <- 866000 
git$size <- 661000 
prod$size <- 153000 
exp$size <- 48000 
내가 모두 함께 넣어하려고 할 때

sizes <- repo$Get("size") 

있다고하지만, 나는이 무게 정보를 포함하는 방법을 잘 모르겠어요 그래서 내가 받기 사용하여 이러한 크기의 벡터를 얻을 수

네트워크 시각화 단계. 이걸하려고하면 ...

reponet <- ToDataFrameNetwork(repo,"repo") 
net <- forceNetwork(reponet, Nodesize = repo$Get("size")) 

을 사용할 수 없습니다. 기본적으로 저는 Julia Silge가이 위대한 목적을 달성하려고 노력하고 있습니다. SO blog post. 아무도 이것을 설정하는 방법을 알고 있습니까?

답변

2

forceNetwork에 대한 도움말 파일을 확인하십시오. 설정하지 않은 수많은 필수 매개 변수가 있습니다.

당신은 당신이 같은 단지 링크 데이터 프레임 네트워크를 플롯 simpleNetwork를 사용할 수 있지만, 그것은 당신이 예를 들어 ... 노드의 크기를 제어 할 수 없습니다 ...

simpleNetwork(reponet) 

으로 노드 크기를 제어하려면 forceNetwork을 사용해야하지만 링크 데이터 프레임과 노드 데이터 프레임이 필요합니다. 생성 한 sizes 객체에서 노드 데이터 프레임을 만든 다음 링크 데이터 프레임의 소스 및 대상 ID를 노드 데이터 프레임의 적절한 노드 색인과 일치하도록 조정할 수 있습니다 (JavaScript로 전송되기 때문에 색인이 생성됨). 예를 들면 ...

nodesdf <- data.frame(name = names(sizes), nodesize = sizes/10000, group = 1) 

reponet$from <- match(reponet$from, nodesdf$name) - 1 
reponet$to <- match(reponet$to, nodesdf$name) - 1 

forceNetwork(reponet, Nodes = nodesdf, Source = "from", Target = "to", 
      NodeID = "name", Group = "group", Nodesize = "nodesize") 
+0

자세히 설명해 주셔서 감사합니다. 이것은 즉시 효과가 있었다. 맞춤 설정할 수있는 더 많은 방법을 살펴볼 수있어서 기쁩니다. –