仅显示Sankey networkd3图表中的选定标签

时间:2017-03-15 12:20:22

标签: r sankey-diagram networkd3

下图显示了我的一个sankey图表:

Sankey Diagram with a lot of labels

如您所见,我确实展示了很多标签。我知道我可以完全禁用标签,但是,我有兴趣知道我是否也可以只选择我想要显示的特定标签(基于节点的ID或路径遍历的值或其他内容)。有没有人玩过这个并且可以给我一个提示?

1 个答案:

答案 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)

但是,当标签/ NodeIDSource数据框中的TargetLinks ID不匹配时,请注意......在这种情况下(如上例所示)sankeyNetwork()函数依赖于数据框中id的顺序来关联它们。

相关问题