1

我正在尝试使用网络流量数据制作交互式网站流量图。

使用包。

它只是一个simpleNetwork,但是一直给我这个警告并强制关闭 RStudio。

library(networkD3)
simpleNetwork(data.frame(BWT2012$Visitors, 1:189157, fontSize = 16, nodeColour = "blue", nodeClickColour = "red", textColour = "black", opacity = 0.6, zoom = T))

警告消息:看起来源/目标不是零索引。这在 Javascript 中是必需的,因此您的绘图可能无法呈现。

我已经研究了几个小时,但似乎无法找到它是如何工作的。我知道 javascript 从 0 读取,r 从 1 读取。这就是它不起作用的原因。

4

1 回答 1

4
  1. 任何人都很难帮助您,因为您没有提供可重复的示例,即我们不知道您的数据框是什么BWT2012样的

  2. 您的代码中似乎有一个错误......data.frame(BWT2012$Visitors, 1:189157, fontSize = 16, nodeColour = "blue", nodeClickColour = "red", textColour = "black", opacity = 0.6, zoom = T)无论BWT2012看起来如何都无法正常工作,因为您将元素传递给data.frame长度不同的函数。我怀疑你的意思是simpleNetwork(data.frame(BWT2012$Visitors, 1:189157), fontSize = 16, nodeColour = "blue", nodeClickColour = "red", textColour = "black", opacity = 0.6, zoom = T)simpleNetwork()函数的第一个参数是完整data.frame()的,BWT2012$Visitors作为它的第一个参数和1:189157作为它的第二个参数,即你打算向simpleNetwork()函数传递一个数据框,它的第一列/变量等于BWT2012$Visitors第二列等于1:189157

  3. 假设上面的 #2 是正确的,您尝试传递的数据框告诉simpleNetwork我们其中的值BWT2012$Visitors是每个链接的来源,而其中的值1:189157是每个链接的目标。这似乎是一个非常不可能的情况,所以我会确保你得到你认为你得到的东西。

  4. 您提到的警告只是一个警告......它不会停止该功能的运行。在许多情况下(可能是因为最近发生了变化),它仍然会绘制图表,尽管结果可能出乎意料。例如...

    Source <- c(1, 1, 2)
    Target <- c(2, 3, 3)
    NetworkData <- data.frame(Source, Target)
    simpleNetwork(NetworkData)
    
  5. 使用 #4 中的示例,如果您想重新编号源 ID 和目标 ID,以便它们被 0 索引并避免警告,您可以这样做...

    Source <- c(1, 1, 2)
    Target <- c(2, 3, 3)
    Source <- Source - 1
    Target <- Target - 1
    NetworkData <- data.frame(Source, Target)
    simpleNetwork(NetworkData)
    
于 2017-02-26T15:13:00.233 回答