我正在开发一个项目来绘制移动操作系统更新时间,使用来自D3中的forceNetwork . 我已经使用simpleNetwork成功绘制了一些基本的迭代,但无法获得更复杂的网络来正确绘制 .
已经阅读了关于这个主题的一些帖子,包括这个帖子(forceNetwork not displaying any edges),但未能推断出答案 .
就像上面帖子中的那个人一样,我能够用很多节点绘制图形,但是无法让它们连接起来 . 以下是我希望通过节点实现的目标:
-
在中心,移动操作系统(Android和iOS)
-
第一个外缘,原始设备制造商(摩托罗拉,三星,苹果等)
-
第二个外缘,即移动设备,连接到相应的OEM
对于链接,我想相应地建模:
-
移动操作系统和OEM之间的第一个链接,只是连接它们,因为有一个已知的连接(即摩托罗拉 生产环境 Android设备,苹果 生产环境 iOS设备) . 为此,我使用数字变量"promised",每个记录应该有一个"1"来 Build 连接 .
-
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
以下是上面第三个图表显示的内容(请注意,我将光标放在图像中的"one"节点上以说明......出于某种原因,那些连接):