在R中绘制forceNetwork图

时间:2015-11-22 17:46:08

标签: r

我正在研究一个项目来绘制移动操作系统更新时间,使用来自R的D3中的forceNetwork。我已经使用simpleNetwork成功绘制了一些基本的迭代,但无法获得更复杂的网络以正确绘制

已阅读有关此主题的一些帖子,包括此帖子(forceNetwork not displaying any edges),但尚未能推断出答案。

与上面帖子中的人一样,我能够绘制具有大量节点的图形,但无法使它们连接。以下是我希望通过节点实现的目标:

  • 在中心,移动操作系统(Android和iOS)
  • 第一个外缘,原始设备制造商(摩托罗拉,三星,苹果等)
  • 第二个外缘,移动设备,连接到相应的OEM

对于链接,我想相应地建模:

  • 移动操作系统和OEM之间的第一个链接,只是连接它们,因为有一个已知的连接(即摩托罗拉生产Android设备,苹果生产iOS设备)。为此,我使用数字变量"承诺",它应该有一个" 1"为每条记录建立连接。
  • OEM和设备之间的第二个链接应该是" how.long" (即他们花了多长时间来实际升级)...理想情况下,我希望节点之间的链接长度来自实际升级所需的时间长度。

我已创建" misNodes"和#" misLinks"以下数据:

misNodes< - data.frame(operating.system,OEM,Device) misLinks< - data.frame(承诺,更新,how.long)

我已经用传奇和关键的方式取得了一些进展,但是还没有能够以理想的方式进行结构,也没有取得很大的成功来绘制所需的联系。到目前为止,这是我最好的尝试:

#Try plotting
forceNetwork(Links=misLinks, Nodes=misNodes, Source="promised", Target="updated", Value="how.long", NodeID="Device", Group="OEM", width=1000, height=1000, opacity=1, zoom=TRUE, legend=TRUE, bounded=TRUE) #doesn't work, but making progress

forceNetwork(Links=misLinks, Nodes=misNodes, Source="promised", Target="how.long", NodeID="Device", Group="OEM", width=800, height=800, opacity=1, zoom=TRUE, legend=TRUE, bounded=TRUE)

forceNetwork(Links=misLinks, Nodes=misNodes, Source="promised", Target="how.long", Value="promised", NodeID="Device", Group="OEM", width=800, height=800, opacity=1, zoom=TRUE, legend=TRUE, bounded=TRUE)

    str(misLinks)
'data.frame':   74 obs. of  3 variables:
 $ promised: num  1 1 1 1 1 1 1 1 1 1 ...
 $ updated : num  1 1 1 1 1 1 1 1 1 0 ...
 $ how.long: num  6 3 1 4 1 6 6 6 6 0 ...

str(misNodes)
'data.frame':   74 obs. of  3 variables:
 $ operating.system: Factor w/ 2 levels "Android","iOS": 1 1 1 1 1 1 1 1 1 1 ...
 $ OEM             : Factor w/ 7 levels "Apple","HTC",..: 2 2 2 2 2 2 2 3 3 3 ...
 $ Device          : Factor w/ 74 levels "Atrix HD","Atrix HD (developer edition)",..: 7 54 55 56 57 58 59 22 20 21 ...

任何提示都将不胜感激......

编辑:添加了一些数据:

head(misLinks)
promised updated how.long
1        1       1        6
2        1       1        3
3        1       1        1
4        1       1        4
5        1       1        1
6        1       1        6

head(misNodes)
  operating.system OEM                    Device
1          Android HTC                 Droid DNA
2          Android HTC                       One
3          Android HTC   One (developer edition)
4          Android HTC            One (dual sim)
5          Android HTC One (Google Play Edition)
6          Android HTC                   One Max

以上是上面第三个图表显示的内容(请注意,我将光标放在"图像中的一个"节点上以说明...出于某种原因,那些连接): forceNetwork(Links=misLinks, Nodes=misNodes, Source="promised", Target="how.long", Value="promised", NodeID="Device", Group="OEM", width=800, height=800, opacity=1, zoom=TRUE, legend=TRUE, bounded=TRUE)

0 个答案:

没有答案