Revision: 65242
Updated Code
at November 11, 2013 10:53 by merian
Updated Code
# 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("PhD", "Career Outside Science", "Early Career Researcher", "Research Staff", "Permanent Research Staff", "Professor", "Non-Academic Research") # the chart is basically a graph g <- graph(c(1, 2, 1, 3, 3, 4, 3, 7, 4, 2, 4, 5, 4, 6, 4, 7)) E(g)$weights <- c(53., 47., 30., 17., 22.5, 3., .5, 4.) # 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$source <- lapply(edgelist$source, FUN = function(x) {nodes[x]}) edgelist$target <- lapply(edgelist$target, FUN = function(x) {nodes[x]}) # 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 = 25, layout = 32, width = 800, height = 500 ) sankeyPlot
Revision: 65241
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 11, 2013 10:27 by merian
Initial Code
# 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("PhD", "Career Outside Science", "Early Career Researcher", "Research Staff", "Permanent Research Staff", "Professor", "Non-Academic Research") # the chart is basically a graph g <- graph(c(1, 2, 1, 3, 3, 4, 3, 7, 4, 2, 4, 5, 4, 6, 4, 7)) E(g)$weights <- c(53., 47., 30., 17., 22.5, 3., .5, 4.) # convert to data frame with appropriate note names edgelist <- get.data.frame(g) # name columns as what is expected by plugin colnames(edgelist) <- c("source", "target", "value") edgelist$source <- lapply(edgelist$source, FUN = function(x) {nodes[x]}) edgelist$target <- lapply(edgelist$target, FUN = function(x) {nodes[x]}) sa # 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 = 25, layout = 32, width = 800, height = 500 ) sankeyPlot
Initial URL
Initial Description
My first attempt at a Sankey diagram in R, using rCharts and timelyportfolio's work
Initial Title
Sankey diagram with R, rCharts, d3
Initial Tags
Initial Language
R