首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中使用networkD3不显示SankeyDiagram中的节点或链接中的值

如何在R中使用networkD3不显示SankeyDiagram中的节点或链接中的值
EN

Stack Overflow用户
提问于 2019-11-10 14:51:25
回答 1查看 470关注 0票数 1

在下面的sankeydiagram示例中,有没有办法在悬停时隐藏图表中显示的“值”-无论是节点还是链接。我基本上是使用sankey图表来显示一个样式化的流程图,我希望这些值根本不会显示给用户

代码语言:javascript
复制
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)

需要说明的是,在下面的屏幕截图中,我仍然希望看到风电并网,但不希望显示289KWH

EN

回答 1

Stack Overflow用户

发布于 2019-11-10 22:23:36

您可以生成希望在工具提示中显示的任何文本,并将其添加到htmlwidgets对象中,然后使用一些自定义的JavaScript将工具提示文本设置为...

代码语言: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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58786387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档