R 桑基图使用 riverplot - 垂直标签
R Sankey Diagram using riverplot - Vertical Labels
我正在使用 R 中的 riverplot
包。我能够制作 Sankey 图。我希望能够添加一个垂直标签(最好在底部)。我发现了一个似乎是这样做的示例:http://www.statsmapsnpix.com/2016/08/research-with-qgis-r-and-speaking-to.html(我指的是靠近顶部的图 20 - 2004
和 2015
之类的标签是我试图弄清楚如何创造)。
我自己怎么办?
这是一个 MWE,直接取自 https://cran.r-project.org/web/packages/riverplot/riverplot.pdf
的包文档
library(riverplot)
nodes <- c( LETTERS[1:3] )
edges <- list( A= list( C= 10 ), B= list( C= 10 ) )
r <- makeRiver( nodes, edges, node_xpos= c( 1,1,2 ),
node_labels= c( A= "Node A", B= "Node B", C= "Node C" ),
node_styles= list( A= list( col= "yellow" )) )
plot( r )
在这里,我想在 Node A
和 Node B
下有一个名为 Left
的标签,在 Node C
下有另一个名为 Right
的标签。
这是一种方法:
library(riverplot)
nodes <- c( LETTERS[1:3] )
edges <- list( A= list( C= 10 ), B= list( C= 10 ) )
r <- makeRiver( nodes, edges, node_xpos= c( 1,1,2 ),
node_labels= c( A= "Node A", B= "Node B", C= "Node C" ),
node_styles= list( A= list( col= "yellow" )) )
(coords <- plot(r))
# A B C
# x 1 1 2
# top -22 -10 -20
# center -17 -5 -10
# bottom -12 0 0
text(
x = range(coords["x",]),
y = min(coords["top",]),
labels = c("left", "right"),
pos = 1, offset = 0, font = 2
)
我正在使用 R 中的 riverplot
包。我能够制作 Sankey 图。我希望能够添加一个垂直标签(最好在底部)。我发现了一个似乎是这样做的示例:http://www.statsmapsnpix.com/2016/08/research-with-qgis-r-and-speaking-to.html(我指的是靠近顶部的图 20 - 2004
和 2015
之类的标签是我试图弄清楚如何创造)。
我自己怎么办?
这是一个 MWE,直接取自 https://cran.r-project.org/web/packages/riverplot/riverplot.pdf
的包文档library(riverplot)
nodes <- c( LETTERS[1:3] )
edges <- list( A= list( C= 10 ), B= list( C= 10 ) )
r <- makeRiver( nodes, edges, node_xpos= c( 1,1,2 ),
node_labels= c( A= "Node A", B= "Node B", C= "Node C" ),
node_styles= list( A= list( col= "yellow" )) )
plot( r )
在这里,我想在 Node A
和 Node B
下有一个名为 Left
的标签,在 Node C
下有另一个名为 Right
的标签。
这是一种方法:
library(riverplot)
nodes <- c( LETTERS[1:3] )
edges <- list( A= list( C= 10 ), B= list( C= 10 ) )
r <- makeRiver( nodes, edges, node_xpos= c( 1,1,2 ),
node_labels= c( A= "Node A", B= "Node B", C= "Node C" ),
node_styles= list( A= list( col= "yellow" )) )
(coords <- plot(r))
# A B C
# x 1 1 2
# top -22 -10 -20
# center -17 -5 -10
# bottom -12 0 0
text(
x = range(coords["x",]),
y = min(coords["top",]),
labels = c("left", "right"),
pos = 1, offset = 0, font = 2
)