细灰线作为链接在R中绘制sankeyNetwork

细灰线作为链接在R中绘制sankeyNetwork,r,plot,sankey-diagram,R,Plot,Sankey Diagram,免责声明:我是R新手,所以我可能忽略了一些非常明显的事情 我目前正在使用R编写一个sankeyNetwork图表,我面临的问题似乎是一个bug,但我完全不知道。。。 我已经在谷歌上搜索了很多次,没有找到其他人报告同样的情况 问题是,在我的代码中,我目前有7个节点和5个链接。绘制图表时,一切正常: 这是图1的代码: library(networkD3) # List of nodes (portfolios & targets) nodes = data.frame("trialnod

免责声明:我是R新手,所以我可能忽略了一些非常明显的事情

我目前正在使用R编写一个sankeyNetwork图表,我面临的问题似乎是一个bug,但我完全不知道。。。 我已经在谷歌上搜索了很多次,没有找到其他人报告同样的情况

问题是,在我的代码中,我目前有7个节点和5个链接。绘制图表时,一切正常:

这是图1的代码:

library(networkD3)

# List of nodes (portfolios & targets)
nodes = data.frame("trialnodes" =
                       c("portfolio1", # 0
                         "portfolio2", # 1
                         "portfolio3", # 2
                         "portfolio4", # 3
                         "target1", # 4
                         "target2", # 5
                         "target3" # 6
                       ))

# List of links
links = as.data.frame(matrix(c(
    0,4,2,
    1,6,1,
    2,3,1,
    2,6,1,
    3,5,1),
    byrow = TRUE, ncol = 3))

# Column names of data frame
names(links) = c("source", "target", "value")

# check
links

# Sankey Diagram
# Colour scale
colourScale = JS("d3.scaleOrdinal(d3.schemeCategory20);")

# Diagram
sankeyNetwork(Links = links, Nodes = nodes,
              Source = "source", Target = "target", Value = "value", NodeID = "trialnodes",
              fontSize = 14, nodeWidth = 10, nodePadding = 140, iterations = 0,
              colourScale = colourScale)
但是,只要我再添加一个节点和一个链接,绘图的格式就会完全中断,将节点之间的链接显示为简单的灰色细线(不表示值)。节点宽度和节点添加规范也会被忽略:(

这是图2的代码:

library(networkD3)
# List of nodes (portfolios & targets)
nodes = data.frame("trialnodes" =
                       c("portfolio1", # 0
                         "portfolio2", # 1
                         "portfolio3", # 2
                         "portfolio4", # 3
                         "target1", # 4
                         "target2", # 5
                         "target3", # 6
                         "target4" # 7
                       ))

# List of links
links = as.data.frame(matrix(c(
    0,4,2,
    0,7,1,
    1,6,1,
    2,3,1,
    2,6,1,
    3,5,1),
    byrow = TRUE, ncol = 3))

# Column names of data frame
names(links) = c("source", "target", "value")

# check
links

# Sankey Diagram
# Colour scale
colourScale = JS("d3.scaleOrdinal(d3.schemeCategory20);")

# Diagram
sankeyNetwork(Links = links, Nodes = nodes,
              Source = "source", Target = "target", Value = "value", NodeID = "trialnodes",
              fontSize = 14, nodeWidth = 10, nodePadding = 140, iterations = 0,
              colourScale = colourScale)

有人能发现发生了什么吗?我希望有人能帮助我…我很绝望D:非常感谢你提前!:)

或者将你的
节点添加值降低到合理的值,或者将查看器/浏览器窗口的大小增大到足以显示一列中的最大节点数*140像素(加上实际节点的一些像素)然后刷新(在第二个示例中,显示为~600px)

库(networkD3)
#节点列表(投资组合和目标)
节点=data.frame(“三节点”=
c(“投资组合1”,0
“portfolio2”,第1页
“portfolio3”,第2页
“portfolio4”,第3页
“target1”和#4
“target2”和#5
“target3”和#6
“目标4”#7
))
#链接列表
links=as.data.frame(矩阵c(
0,4,2,
0,7,1,
1,6,1,
2,3,1,
2,6,1,
3,5,1),
byrow=TRUE,ncol=3)
#数据框的列名
名称(链接)=c(“源”、“目标”、“值”)
#检查
链接
#桑基图
#色标
colorScale=JS(“d3.scaleOrdinal(d3.schemeCategory20);”)
#图解
sankeyNetwork(链接=链接,节点=节点,
Source=“Source”,Target=“Target”,Value=“Value”,NodeID=“trialnodes”,
fontSize=14,nodeWidth=10,nodePadding=14,迭代次数=0,
颜色比例=颜色比例)

或者将
节点添加值减少到合理的值,或者使查看器/浏览器窗口足够大,以显示列中的最大节点数*140像素(加上实际节点的一些像素),然后刷新(在第二个示例中,显示为~600px)

库(networkD3)
#节点列表(投资组合和目标)
节点=data.frame(“三节点”=
c(“投资组合1”,0
“portfolio2”,第1页
“portfolio3”,第2页
“portfolio4”,第3页
“target1”和#4
“target2”和#5
“target3”和#6
“目标4”#7
))
#链接列表
links=as.data.frame(矩阵c(
0,4,2,
0,7,1,
1,6,1,
2,3,1,
2,6,1,
3,5,1),
byrow=TRUE,ncol=3)
#数据框的列名
名称(链接)=c(“源”、“目标”、“值”)
#检查
链接
#桑基图
#色标
colorScale=JS(“d3.scaleOrdinal(d3.schemeCategory20);”)
#图解
sankeyNetwork(链接=链接,节点=节点,
Source=“Source”,Target=“Target”,Value=“Value”,NodeID=“trialnodes”,
fontSize=14,nodeWidth=10,nodePadding=14,迭代次数=0,
颜色比例=颜色比例)

我无法重现您的问题。在my env上,您的第二个代码运行并生成类似于图1的图形。欢迎使用SO!我得到了与@cartlefish44相同的结果。你能试着重新启动你的R会话吗?:-/真的吗?你知道我到底应该解决什么问题吗?我正在运行R3.6.2,RStudio 1.2.5019,在macOS Mojave 10.14.6。。。以防万一relevant@RoB不幸的是,重新启动并不能解决问题:(实际上,我重新安装了整个程序,同时试图自己修复它,但没有成功…@Montse这很奇怪…你一直用第一个代码得到正确的绘图?我无法重现你的问题。在我的环境中,你的第二个代码运行并生成一个类似绘图1的图形。欢迎这样做!我得到的结果与@Cartlefish44相同。你能尝试重新启动吗正在运行R会话?:-/真的吗?你知道我应该修复什么吗?我正在运行macOS Mojave 10.14.6中的R3.6.2,RStudio 1.2.5019…以防万一relevant@RoB不幸的是,重新启动并不能解决问题:(实际上,我重新安装了整个程序,同时试图自己修复它,但没有成功…@Montse这很奇怪…你总是用第一个代码得到正确的绘图?