下图显示了我的一个sankey图表:
Sankey Diagram with a lot of labels
如您所见,我确实展示了很多标签。我知道我可以完全禁用标签,但是,我有兴趣知道我是否也可以只选择我想要显示的特定标签(基于节点的ID或路径遍历的值或其他内容)。有没有人玩过这个并且可以给我一个提示?
答案 0 :(得分:0)
节点标签来自您传递给该函数的NodeID
数据框中的Nodes
。任何这些ID /标签都可以是空字符串""
,这将有效地使相关节点的标签不可见。
使用帮助文件的示例,这将打印每个节点的标签......
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)
虽然这不会为左上角的三个&#39; Oil&#39;打印标签。节点...
URL <- paste0('https://cdn.rawgit.com/christophergandrud/networkD3/master/JSONdata/energy.json')
energy <- jsonlite::fromJSON(URL)
energy$nodes[37:39, ] <- ' '
sankeyNetwork(Links = energy$links, Nodes = energy$nodes, Source = 'source',
Target = 'target', Value = 'value', NodeID = 'name',
units = 'TWh', fontSize = 12, nodeWidth = 30)
但是,当标签/ NodeID
与Source
数据框中的Target
和Links
ID不匹配时,请注意......在这种情况下(如上例所示)sankeyNetwork()
函数依赖于数据框中id的顺序来关联它们。