具有R库networkD3的Sankey图不显示颜色

奥立佛

我正在使用R的networkD3库来创建Sankey网络。尽管这对我来说效果很好,但我现在遇到了一个问题,即如何将属性“ NoteID”和/或“ NoteGroup”分配给分组和分配颜色,如https://christophergandrud.github.io/networkD3/#sankey中所示

以下代码显示了创建Sankey图的4个示例,只有“ Sankey4”按设计工作,即没有颜色:

library(networkD3)
#Unique list of nodes
my_nodes = structure(list(name = c("HawaiTEST", "AMSVOASMPP01", "App1", 
                                   "Transfer", "Transferred_tel__63null_",
                                   "Transferred_tel__631100107_", 
                                   "AMSVOASMPP02",
                                   "Transferred_tel__631100108_",
                                   "Transferred_tel__631100106_", 
                                   "Transferred_tel__631100104_",
                                   "Transferred_tel__631100105_", 
                                   "FarEndDisconnect",
                                   "FarEndDisconnect_Hangup", "DutchAOS",
                                   "SwedenAOS", 
                                   "Transferred_tel__63000_")), class =
c("tbl_df", "tbl", "data.frame"
  ), row.names = c(NA, -16L), .Names = "name")

# Network
my_links = structure(list(key = c("0_1", "0_6", "1_13", "1_14", "1_2", "11_12", 
                                  "13_11", "13_3", "14_11", "14_3", "2_11",
                                  "2_3", "3_10", "3_15", 
                                  "3_4", "3_5", "3_7", "3_8", "3_9", "6_13",
                                  "6_2"), source = c(0L, 
                                  0L, 1L, 1L, 1L, 11L, 13L, 13L, 14L, 14L, 2L,
                                  2L, 3L, 3L, 3L, 
                                  3L, 3L, 3L, 3L, 6L, 6L), target = c(1L, 6L,
                                  13L, 14L, 2L, 12L, 
                                  11L, 3L, 11L, 3L, 11L, 3L, 10L, 15L, 4L, 5L,
                                  7L, 8L, 9L, 13L, 
                                  2L), total = c(38L, 36L, 4L, 3L, 31L, 6L, 2L,
                                  5L, 1L, 2L, 3L, 
                                  61L, 11L, 1L, 12L, 11L, 11L, 11L, 11L, 3L,
                                  33L)), class = c("tbl_df", 
                          "tbl", "data.frame"), row.names = c(NA, -21L), .Names
= c("key", 
    "source", "target", "total"))


# NOT WORKING using  "NodeID", or "NodeGroup"
sankey1 = sankeyNetwork(Links =my_links, Nodes = my_nodes, Source =
                           "source", Target = "target", Value = "total", units =
                           "calls", NodeID = "name")

sankey2 = sankeyNetwork(Links =my_links, Nodes = my_nodes, Source =
                           "source", Target = "target", Value = "total", units =
                           "calls", NodeGroup = "name")
sankey2

# NOT WORKING using ColourScale (diagram is displayed, grey scale though)
ColourScale <- 'd3.scale.ordinal()
            .domain(["lions", "tigers"])
           .range(["#FF6900", "#694489"]);'
sankey3 = sankeyNetwork(Links =my_links, Nodes = my_nodes, Source =
                           "source", Target = "target", Value = "total", units =
                           "calls", colourScale = JS(ColourScale))
sankey3

# WORKING! 

sankey4 = sankeyNetwork(Links =my_links, Nodes = my_nodes, Source =
                           "source", Target = "target", Value = "total", units =
                           "calls")
sankey4

“ Sankey1”尝试使用“ NoteID”来使用上面引用的示例中的示例,但是这样做导致根本不显示图表。对“ Sankey2”具有相同的效果。无论颜色方案定义如何,“ Sankey4”均以灰色显示。

我还查看了由两者产生的html代码,产生R的代码“ Sankey1”,以及在https://christophergandrud.github.io/networkD3/#sankey上使用的代码显然,关于组别是有区别的:

来自“ Sankey1”的HTML:

"group":{"name":["HawaiTEST", ...
...
"options":{"NodeID":1,"NodeGroup":"name","LinkGroup":null,

来自网络示例的HTML摘录:

"group":["Agricultural 'waste'","Bio-conversion", ...
...
"options":{"NodeID":"name","NodeGroup":"name","LinkGroup":null

更改“ Sankey1”的输出html以反映Web示例的输出可解决此问题,“ Sankey1”使用默认的颜色架构显示。

目前,我正在努力了解我所使用的数据的行为。sankey函数不依赖于强制列表输入;实际上,我已经将网站上的示例数据集分成两个数据框(节点,链接),这确实产生了与Web示例相同的带有颜色的sankey图。因此,在我的示例中,输入数据肯定有问题……我想……任何帮助将不胜感激!谢谢奥利

拉拉

我有一个类似的问题。我通过减少节点总数(仅过滤高于特定值的边)来解决该问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用`networkD3`更改Sankey图的颜色字体

来自分类Dev

R(networkD3)Sankey图的左右沉没?

来自分类Dev

更改networkD3图的背景颜色

来自分类Dev

我可以旋转Sankey图(networkD3 :: sankeyNetwork)中的节点标签吗?

来自分类Dev

使用networkD3和数据框的有向图

来自分类Dev

带有 networkD3 的桑基图 - 创建链接

来自分类Dev

在 R 中使用 igraph 和 networkD3 进行树状图可视化

来自分类Dev

使用 networkd3 的 R 中离散状态序列的桑基图

来自分类Dev

高图颜色不显示

来自分类Dev

D3JS树状图呈现但颜色不显示

来自分类Dev

R networkD3包:simpleNetwork()中的节点着色

来自分类Dev

R networkD3更改节点IMG

来自分类Dev

多层SankeyNetwork(NetworkD3)不在R中绘图

来自分类Dev

为强制定向网络networkD3 :: forceNetwork()中的每个链接指定颜色

来自分类Dev

R图不显示散点图

来自分类Dev

D3:如何创建具有两个圆弧的循环流/ Sankey图

来自分类Dev

少-R不显示颜色

来自分类Dev

颜色链接与d3 sankey图的原点节点相同

来自分类Dev

不同年份具有不同颜色的图-R

来自分类Dev

具有相同颜色映射的R图

来自分类Dev

R ggplot中具有可变颜色的多个图

来自分类Dev

forceNetwork networkD3 - 箭头问题

来自分类Dev

节点之间具有多个边的修改过的sankey图

来自分类Dev

R中的Sankey图

来自分类Dev

R图不显示图形窗口

来自分类Dev

R Markdown演示文稿不显示图

来自分类Dev

R条形图对于某些条形图具有不同的颜色

来自分类Dev

有图像时不显示背景颜色

来自分类Dev

D3 rect +颜色不显示