| Title: | Illustrate the Flow of Information or Material |
| Version: | 1.0.2 |
| Author: | Gábor Csárdi, January Weiner |
| Maintainer: | Gábor Csárdi <csardi.gabor@gmail.com> |
| Description: | Plots that illustrate the flow of information or material. |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| LazyData: | true |
| URL: | https://github.com/gaborcsardi/sankey#readme |
| BugReports: | https://github.com/gaborcsardi/sankey/issues |
| Suggests: | covr, mockery, testthat |
| Imports: | simplegraph, utils, graphics, grDevices |
| RoxygenNote: | 6.0.1 |
| Encoding: | UTF-8 |
| NeedsCompilation: | no |
| Packaged: | 2017-10-22 14:30:14 UTC; gaborcsardi |
| Repository: | CRAN |
| Date/Publication: | 2017-10-22 16:45:58 UTC |
Sankey Diagrams
Description
Sankey plots illustrate the flow of information or material.
Draw a sankey plot
Usage
## S3 method for class 'sankey'
plot(x, ...)
sankey(x, mar = c(0, 5, 0, 5) + 0.2, ...)
Arguments
x |
The plot, created via |
... |
Additional arguments, ignored currently. |
mar |
Margin of the plot, see |
Value
Nothing.
Create an object that describes a sankey plot
Description
Create an object that describes a sankey plot
Usage
make_sankey(nodes = NULL, edges, y = c("optimal", "simple"),
break_edges = FALSE, gravity = c("center", "top", "bottom"))
Arguments
nodes |
A data frame of nodes on the plot, and possibly
their visual style. The first column must be the ids of the
nodes. If this argument is |
edges |
A data frame of the edges. The first two columns must be node ids, and they define the edges. The rest of the columns contain the visual style of the edges. |
y |
How to calculate vertical coordinates of nodes, if they
are not given in the input. |
break_edges |
Whether to plot each edge as two segments, or a single one. Sometimes two segment plots look better. |
gravity |
Whether to push the nodes to the top, to the bottom or to the center, within a column. |
Details
The node and edges data frames may contain columns that specify how the plot is created. All parameters have reasonable default values.
Current list of graphical parameters for nodes:
-
colNode color. -
sizeNode size. -
xHorizontal coordinates of the center of the node. -
yVertical coordinates of the center of the node. -
shapeShape of the node. Possible values:rectangle,point,invisible. -
ltyLite type, seepar. -
srtHow to rotate the label, seepar. -
textcolLabel color. -
labelLabel text. Defaults to node name. -
adjxHorizontal adjustment of the label. Seeadjin theparmanual. -
adjyVertical adjustment of the label. Seeadjin theparmanual. -
boxwWidth of the node boxes. -
cexLabel size multiplication factor. -
topVertical coordinate of the top of the node. -
centerVertical coordinate of the center of the node. -
bottomVertical coordinate of the bottom of the node. -
posPosition of the text label, seepar. -
textxHorizontal position of the text label. -
textyVertical position of the text label.
Current list of graphical parameters for edges:
-
colorstyleWhether the to use a solid color (col), orgradientto plot the edges. The color of a gradient edges is between the colors of the nodes. -
curvestyleEdge style,sinfor sinusoid curves,linefor straight lines. -
colEdge color, for edges with solid colors. -
weightEdge weight. Determines the width of the edges.
Value
A sankey object that can be plotted via the
sankey function.x
Examples
## Function calls in the pkgsnap package:
edges <- read.table(stringsAsFactors = FALSE, textConnection(
" get_deps get_description
get_deps parse_deps
get_deps %||%
get_deps drop_internal
get_description pkg_from_filename
parse_deps str_trim
cran_file get_pkg_type
cran_file r_minor_version
download_urls split_pkg_names_versions
download_urls cran_file
pkg_download dir_exists
pkg_download download_urls
pkg_download filename_from_url
pkg_download try_download
restore pkg_download
restore drop_missing_deps
restore install_order
restore get_deps
split_pkg_names_versions data_frame
"))
pkgsnap_sankey <- make_sankey(edges = edges)
sankey(pkgsnap_sankey)
## Some customization
nodes <- data.frame(
stringsAsFactors = FALSE,
id = c("snap", sort(unique(c(edges[,1], edges[,2]))))
)
nodes$col <- ifelse(nodes$id %in% c("snap", "restore"), "orange", "#2ca25f")
edges$colorstyle <- "gradient"
sankey(make_sankey(nodes, edges))