[R] vertical lines in riverplot

Brandstätter Christian bran.chri at gmail.com
Wed Feb 3 15:55:03 CET 2016


Dear List,

I want to draw a Sankey-diagramm in R, for which I would use the
riverplot package.
It would be really nice to be able to
1. draw vertical lines (="edges") between nodes on the same x-axis
(T03-T04 in the example below) and
2. to invert the plot.
Now the "edge" between T03 and T04 is straight, but not vertical (1.).
I could invert the plot manually after drawing it, but there could
most likely be a more elegant solution (2.).

Any ideas would be appreciated.

Thank you,
Christian


library(riverplot)

trplot <- function ()
{

  ret <- list(nodes = data.frame(ID = c("T01","T02","T03","T04"),
                                 x = c(1,2,3,3),
                                 labels = c("T1","T2","T3","T4"),
                                 stringsAsFactors = FALSE),
              styles = list(T01 = list(col = "red",lty = 0, textcol = "white"),
                            T02 = list(col = "blue",lty = 0, textcol = "white"),
                            T03 = list(col = "green",lty = 0, textcol
= "white"),
                            T04 = list(col = "cyan",lty = 0, textcol =
"white")))

  ret$edges <- data.frame(stringsAsFactors = FALSE,
                          N1 = c("T01","T02","T03"),
                          N2 = c("T03","T03","T04"),
                          Value=c(5,5,12))

  rownames(ret$nodes) <- ret$nodes$ID
  class(ret) <- c(class(ret), "riverplot")
  return(ret)
}

style2 <- default.style()
style2[["edgestyle"]] <- "straight"
riverplot(trplot(),default_style=style2)



More information about the R-help mailing list