2014-10-23 5 views
0

sankey 플롯에 노드 제한이 있습니까? 많은 노드가있는 플롯을 만들려고하고 있는데 다음 코드는 줄거리를 생성하지 못합니다 (그러나 오류 경고는 표시하지 않습니다).R sankey 플롯 노드 한계?

어떤 아이디어가 있습니까?

# sankey chart using d3 plugin for rCharts and the igraph library 

require(rCharts) 
require(igraph) 

# these are our vertices/nodes/end points/stages/categories/classes/whatever 
nodes = c(1:36) 

# the chart is basically a graph 

pairs=c() 
for (j in seq(1,36,by=4)) pairs=c(pairs,j,j+1,j+1,j+2,j+2,j+3) 
pairs 
g <- graph(pairs) 
plot(g) 
E(g) 
E(g)$weights <- rep(c(16667,500,100),9) 
length(E(g)$weights) 

# convert to data frame with appropriate node names 
edgelist <- get.data.frame(g) 

# name columns as what is expected by plugin 
colnames(edgelist) <- c("source", "target", "value") 
edgelist 

edgelist$source <- lapply(edgelist$source, FUN = function(x) {nodes[x]}) 
edgelist$target <- lapply(edgelist$target, FUN = function(x) {nodes[x]}) 
edgelist 

# now we plot 
sankeyPlot <- rCharts$new() 
sankeyPlot$setLib('http://timelyportfolio.github.io/rCharts_d3_sankey/libraries/widgets/d3_sankey') 
sankeyPlot$set(
data = edgelist, 
nodeWidth = 15, 
nodePadding = 15, 
layout = 32, 
width = 960, 
height = 500 
) 
sankeyPlot 
+0

"브라우저에서보기"=> "자바 스크립트 콘솔 '=>'catch되지 않은 형식 오류 : 재산 'sourceLinks'을 읽을 수 없습니다 undefined' – hrbrmstr

+0

당신이 설정 한 JS 라이브러리는 비어있는 가능성이 있기 때문에 HTTP : //timelyportfolio.github .io/rCharts_d3_sankey/libraries/widgets/d3_sankey는 404를 반환합니다. – keegan

+0

404는 문제가 아닙니다. 거기에 index.html 파일이 없습니다. 나는 이것을 조사 할 것이다. – timelyportfolio

답변

1

http://timelyportfolio.github.io/rCharts_d3_sankey/example_build_network_sankey.html을 참조하십시오. 현재 edgelist의 원본 및 대상 열은 문자이어야합니다. 또한 lapplysapply으로 변경하십시오.

결과 차트가 여전히 원하는 것은 아니지만 최소한 나타나기 때문에 위에 언급 된 link을보고 네트워크가 적절한 Sankey에 대해 예상대로 작동하는지 확인하고 싶을 수 있습니다.

# sankey chart using d3 plugin for rCharts and the igraph library 

require(rCharts) 
require(igraph) 

# these are our vertices/nodes/end points/stages/categories/classes/whatever 
nodes = c(1:36) 

# the chart is basically a graph 

pairs=c() 
for (j in seq(1,36,by=4)) pairs=c(pairs,j,j+1,j+1,j+2,j+2,j+3) 
pairs 
g <- graph(pairs) 
plot(g) 
E(g) 
E(g)$weights <- rep(c(16667,500,100),9) 
length(E(g)$weights) 

# convert to data frame with appropriate node names 
edgelist <- get.data.frame(g) 

# name columns as what is expected by plugin 
colnames(edgelist) <- c("source", "target", "value") 
edgelist 

edgelist$source <- sapply(edgelist$source, FUN = function(x) {as.character(nodes[x])}) 
edgelist$target <- sapply(edgelist$target, FUN = function(x) {as.character(nodes[x])}) 
edgelist 

# now we plot 
sankeyPlot <- rCharts$new() 
sankeyPlot$setLib('http://timelyportfolio.github.io/rCharts_d3_sankey/libraries/widgets/d3_sankey') 
sankeyPlot$set(
    data = edgelist, 
    nodeWidth = 15, 
    nodePadding = 15, 
    layout = 32, 
    width = 960, 
    height = 800 
) 
sankeyPlot