【问题标题】:Only show selected labels in Sankey networkd3 diagram仅在 Sankey networkd3 图中显示选定的标签
【发布时间】:2017-03-15 12:20:21
【问题描述】:

下图显示了我的一个桑基图:

Sankey Diagram with a lot of labels

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

【问题讨论】:

    标签: r sankey-diagram networkd3


    【解决方案1】:

    节点标签来自您传递给函数的Nodes 数据框中的NodeID。这些 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)
    

    而这不会为左上角的三个“油”节点打印标签...

    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)
    

    但是,当标签/NodeIDs 与SourceTarget id 在Links 数据框中不匹配时,请注意...在这种情况下(如上面的示例中)@ 987654330@函数依赖于数据帧中id的顺序来关联它们。

    【讨论】:

    • 这实际上是一个很好的解决方法!非常感谢。我将 Sankey 图用作更闪亮的应用程序的一部分,在该应用程序中我动态过滤特定路径;现在标签也得到动态“更新”;)
    猜你喜欢
    • 2017-11-25
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 2021-08-02
    • 2019-02-13
    • 2018-03-18
    • 2021-10-24
    • 1970-01-01
    相关资源
    最近更新 更多