The chart
The code
library(networkD3)
library(dplyr)
# Load energy projection data
links <- read.csv("sankey_sample - Final_notext.csv")
# From these flows we need to create a node data frame: it lists every entities involved in the flow
nodes <- data.frame(
name=c(as.character(links$source),
as.character(links$target)) %>% unique()
)
# With networkD3, connection must be provided using id, not using real name
# like in the links dataframe.. So we need to reformat it.
links$IDsource <- match(links$source, nodes$name)-1
links$IDtarget <- match(links$target, nodes$name)-1
# Make the Network
p <- sankeyNetwork(Links = links, Nodes = nodes,
Source = "IDsource", Target = "IDtarget",
Value = "value", NodeID = "name", width=1150, height=550,
sinksRight=FALSE, fontSize = 14,
colourScale = JS("d3.scaleOrdinal(d3.schemeCategory20);"))
p
# save the widget
library(htmlwidgets)
saveWidget(p, "/Users/sidravi/temp/sankeyBasic1.html")
Other details
This chart was created by Neha Verma and Raghav Adlakha.