如何使用R中的networkD3在SankeyDiagram中不显示节点或链接中的值
在下面的sankeydiagram示例中,悬停时是否仍有隐藏图中显示的“值”——无论是在节点上还是在链接上。我基本上使用sankey图表来显示一个样式化的流程图,我希望这些值不会显示给用户如何使用R中的networkD3在SankeyDiagram中不显示节点或链接中的值,r,sankey-diagram,networkd3,R,Sankey Diagram,Networkd3,在下面的sankeydiagram示例中,悬停时是否仍有隐藏图中显示的“值”——无论是在节点上还是在链接上。我基本上使用sankey图表来显示一个样式化的流程图,我希望这些值不会显示给用户 URL <- paste0('https://cdn.rawgit.com/christophergandrud/networkD3/master/JSONdata/energy.json') energy <- jsonlite::fromJSON(URL) sankeyNetwork(Lin
URL <- paste0('https://cdn.rawgit.com/christophergandrud/networkD3/master/JSONdata/energy.json')
energy <- jsonlite::fromJSON(URL)
sankeyNetwork(Links = energy$links, Nodes = energy$nodes, Source = 'source',
Target = 'target', Value = 'value', NodeID = 'name',
units = 'TWh', fontSize = 12, nodeWidth = 30)
URL您可以生成要在工具提示中显示的任何文本,并将其添加到htmlwidgets
对象中,然后使用一些自定义JavaScript将工具提示文本设置为它
library(jsonlite)
library(networkD3)
library(htmlwidgets)
URL <- paste0('https://cdn.rawgit.com/christophergandrud/networkD3/master/JSONdata/energy.json')
energy <- jsonlite::fromJSON(URL)
# generate the text you want to display
energy$links$name <-
paste0(energy$nodes$name[energy$links$source + 1],
" -> ", energy$nodes$name[energy$links$target + 1])
sn <- sankeyNetwork(Links = energy$links, Nodes = energy$nodes, Source = 'source',
Target = 'target', Value = 'value', NodeID = 'name',
units = 'TWh', fontSize = 12, nodeWidth = 30)
# add the names back into the links data because sankeyNetwork strips it out
sn$x$links$name <- energy$links$name
# add onRender JavaScript to set the title to the value of 'name' for each link
sn <- htmlwidgets::onRender(
sn,
'
function(el, x) {
d3.selectAll(".link").select("title foreignObject body pre")
.text(function(d) { return d.name; });
}
'
)
# display the result
sn
library(jsonlite)
图书馆(网络3)
库(htmlwidgets)
统一资源定位地址