在使用networkD3渲染桑基图时,有没有什么技巧可以将文本放置在上面?我希望端点的值作为文本显示在它们的方框右侧。我知道悬停在方框上会显示该值,但是随着方框变小,在许多情况下,如果值始终在侧面可见,就会更容易表达信息。这里有一个例子; 我能够通过将值作为标签的一部分添加来进行某种形式的欺骗,但是最好在图表的右侧显示这些值。
library(networkD3)
library(data.table)
set.seed(1999)
links <- data.table(
src = rep(0:4, times=c(1,1,2,3,5)),
target = sample(1:11, 12, TRUE),
value = sample(100, 12)
)[src < target, ] # no loops
nodes <- data.table(name=LETTERS[1:12])
## Need to hover to get counts
sankeyNetwork(Links=links, Nodes=nodes, Source='src', Target='target',
Value='value', NodeID='name', fontSize=16)
## Add text to label
txt <- links[, .(total = sum(value)), by=c('target')]
nodes[txt$target+1L, name := paste0(name, ' (', txt$total, ')')]
## Displays the counts as part of the labels
sankeyNetwork(Links=links, Nodes=nodes, Source='src', Target='target',
Value='value', NodeID='name', fontSize=16, width=600, height=300)