【发布时间】:2016-02-05 02:25:20
【问题描述】:
在使用 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)
【问题讨论】:
标签: r sankey-diagram networkd3