Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的Sankey图_R_Nodes_Sankey Diagram_Htmlwidgets_Networkd3 - Fatal编程技术网

R中的Sankey图

R中的Sankey图,r,nodes,sankey-diagram,htmlwidgets,networkd3,R,Nodes,Sankey Diagram,Htmlwidgets,Networkd3,我正在用R制作一个sankey图,但在节点名称背后的含义方面遇到了问题 下面是我在网上找到的一个例子: library(networkD3) nodes = data.frame("name" = c("Node A", # Node 0 "Node B", # Node 1 "Node C", # Node 2 "Nod

我正在用R制作一个sankey图,但在节点名称背后的含义方面遇到了问题

下面是我在网上找到的一个例子:

library(networkD3)
nodes = data.frame("name" = 
                     c("Node A", # Node 0
                      "Node B", # Node 1
                      "Node C", # Node 2
                      "Node D"))# Node 3
links = as.data.frame(matrix(c(
  0, 1, 10, # Each row represents a link. The first number
  0, 2, 20, # represents the node being conntected from. 
  1, 3, 30, # the second number represents the node connected to.
  2, 3, 40),# The third number is the value of the node
  byrow = TRUE, ncol = 3))
names(links) = c("source", "target", "value")
sankeyNetwork(Links = links, Nodes = nodes,
              Source = "source", Target = "target",
              Value = "value", NodeID = "name",
             fontSize= 12, nodeWidth = 30) 

我使用的数据集如下所示:

source<-c('EASTERN PARKWAY', 'CONEY ISLAND AVENUE', 'ATLANTIC AVENUE', 'ATLANTIC AVENUE','ATLANTIC AVENUE','ATLANTIC AVENUE',
      'AVENUE P', 'BAY PARKWAY', 'BUFFALO AVENUE', 'FLATBUSH AVENUE', 'PROSPECT EXPRESSWAY', 'SAINT JOHNS PLACE',
      '6 AVENUE', '65 STREET', '65 STREET', '65 STREET', 'ATLANTIC AVENUE', 'ATLANTIC AVENUE', 'ATLANTIC AVENUE', 'CONEY ISLAND AVENUE')

target<-c('BUFFALO AVENUE', 'AVENUE J', 'CLASSON AVENUE', 'EASTERN PARKWAY', 'HICKS STREET', 'LOGAN STREET',
      'EAST 18 STREET', 'CROPSEY AVENUE', 'EASTERN PARKWAY', 'AVENUE V', 'CHURCH AVENUE', 'ROCHESTER AVENUE',
      'ATLANTIC AVENUE', '17 AVENUE', '18 AVENUE', 'BAY PARKWAY', 'NEVINS STREET', 'UTICA AVENUE', 'VANDERBILT AVENUE', 'AVENUE P')

value<-c(8,5,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3)
df<-data.frame(source, target, value)
df

   source              target             value
 1 EASTERN PARKWAY     BUFFALO AVENUE      8.00
 2 CONEY ISLAND AVENUE AVENUE J            5.00
 3 ATLANTIC AVENUE     CLASSON AVENUE      4.00
 4 ATLANTIC AVENUE     EASTERN PARKWAY     4.00
 5 ATLANTIC AVENUE     HICKS STREET        4.00
 6 ATLANTIC AVENUE     LOGAN STREET        4.00
 7 AVENUE P            EAST 18 STREET      4.00
 8 BAY PARKWAY         CROPSEY AVENUE      4.00
 9 BUFFALO AVENUE      EASTERN PARKWAY     4.00
10 FLATBUSH AVENUE     AVENUE V            4.00
11 PROSPECT EXPRESSWAY CHURCH AVENUE       4.00
12 SAINT JOHNS PLACE   ROCHESTER AVENUE    4.00
13 6 AVENUE            ATLANTIC AVENUE     3.00
14 65 STREET           17 AVENUE           3.00
15 65 STREET           18 AVENUE           3.00
16 65 STREET           BAY PARKWAY         3.00
17 ATLANTIC AVENUE     NEVINS STREET       3.00
18 ATLANTIC AVENUE     UTICA AVENUE        3.00
19 ATLANTIC AVENUE     VANDERBILT AVENUE   3.00
20 CONEY ISLAND AVENUE AVENUE P            3.00

source数据框中的
节点定义了将要绘制的所有节点,而
节点
数据框中的
节点ID
向量包含将为每个节点显示的标签

links <- read.csv(text = "
source,target,value
EASTERN PARKWAY,BUFFALO AVENUE,8.00
CONEY ISLAND AVENUE,AVENUE J,5.00
ATLANTIC AVENUE,CLASSON AVENUE,4.00
ATLANTIC AVENUE,EASTERN PARKWAY,4.00
ATLANTIC AVENUE,HICKS STREET,4.00
ATLANTIC AVENUE,LOGAN STREET,4.00
AVENUE P,EAST 18 STREET,4.00
BAY PARKWAY,CROPSEY AVENUE,4.00
BUFFALO AVENUE,EASTERN PARKWAY,4.00
FLATBUSH AVENUE,AVENUE V,4.00
PROSPECT EXPRESSWAY,CHURCH AVENUE,4.00
SAINT JOHNS PLACE,ROCHESTER AVENUE,4.00
6 AVENUE,ATLANTIC AVENUE,3.00
65 STREET,17 AVENUE,3.00
65 STREET,18 AVENUE,3.00
65 STREET,BAY PARKWAY,3.00
ATLANTIC AVENUE,NEVINS STREET,3.00
ATLANTIC AVENUE,UTICA AVENUE,3.00
ATLANTIC AVENUE,VANDERBILT AVENUE,3.00
CONEY ISLAND AVENUE,AVENUE P,3.00
")

# build a nodes data frame using all unique names of nodes found in your links
# source *and* target vectors
nodes <- data.frame(name = unique(c(as.character(links$source), as.character(links$target))))

# set the source and target values in your links data frame to the index of the
# node that they refer to in the nodes data frame (0-indexed becauuse it's 
# used by JavaScript)
links$source <- match(links$source, nodes$name) - 1
links$target <- match(links$target, nodes$name) - 1

# plot it
library(networkD3)
sankeyNetwork(Links = links, Nodes = nodes, Source = "source", 
              Target = "target", Value = "value", NodeID = "name")

链接数据框中的
节点定义了将要绘制的所有节点,而
节点
数据框中的
节点ID
向量包含将为每个节点显示的标签

links <- read.csv(text = "
source,target,value
EASTERN PARKWAY,BUFFALO AVENUE,8.00
CONEY ISLAND AVENUE,AVENUE J,5.00
ATLANTIC AVENUE,CLASSON AVENUE,4.00
ATLANTIC AVENUE,EASTERN PARKWAY,4.00
ATLANTIC AVENUE,HICKS STREET,4.00
ATLANTIC AVENUE,LOGAN STREET,4.00
AVENUE P,EAST 18 STREET,4.00
BAY PARKWAY,CROPSEY AVENUE,4.00
BUFFALO AVENUE,EASTERN PARKWAY,4.00
FLATBUSH AVENUE,AVENUE V,4.00
PROSPECT EXPRESSWAY,CHURCH AVENUE,4.00
SAINT JOHNS PLACE,ROCHESTER AVENUE,4.00
6 AVENUE,ATLANTIC AVENUE,3.00
65 STREET,17 AVENUE,3.00
65 STREET,18 AVENUE,3.00
65 STREET,BAY PARKWAY,3.00
ATLANTIC AVENUE,NEVINS STREET,3.00
ATLANTIC AVENUE,UTICA AVENUE,3.00
ATLANTIC AVENUE,VANDERBILT AVENUE,3.00
CONEY ISLAND AVENUE,AVENUE P,3.00
")

# build a nodes data frame using all unique names of nodes found in your links
# source *and* target vectors
nodes <- data.frame(name = unique(c(as.character(links$source), as.character(links$target))))

# set the source and target values in your links data frame to the index of the
# node that they refer to in the nodes data frame (0-indexed becauuse it's 
# used by JavaScript)
links$source <- match(links$source, nodes$name) - 1
links$target <- match(links$target, nodes$name) - 1

# plot it
library(networkD3)
sankeyNetwork(Links = links, Nodes = nodes, Source = "source", 
              Target = "target", Value = "value", NodeID = "name")

链接您可以与
dput
共享数据吗?空格使其难以读取。只是使其成为一个可复制的示例您可以与
dput
共享数据吗?空间让人难以阅读。只是让它成为一个可复制的例子这太神奇了,谢谢。我的代码看起来和你的代码有点不同。您是如何将虚线返回到eastern parkway的。我的虚线稍长,很难看到-看起来您有多个同名节点,因此您一定没有使用唯一节点正确创建
节点
数据帧。如果您在RStudio的“查看器”面板中查看它,调整查看器窗口的大小,然后单击“刷新窗口”。如果在浏览器中查看,请调整浏览器窗口的大小,然后刷新。请尝试读取帮助文件。。。关于如何调整字体大小,有非常明确的说明。这太棒了,谢谢。我的代码看起来和你的代码有点不同。您是如何将虚线返回到eastern parkway的。我的虚线稍长,很难看到-看起来您有多个同名节点,因此您一定没有使用唯一节点正确创建
节点
数据帧。如果您在RStudio的“查看器”面板中查看它,调整查看器窗口的大小,然后单击“刷新窗口”。如果在浏览器中查看,请调整浏览器窗口的大小,然后刷新。请尝试读取帮助文件。。。关于如何调整字体大小,有非常明确的说明