r - 了解一个简单的网络图
问题描述
考虑这个简单的例子
mynodes_alt <- tibble(id = c(1,2,4,5),
mygroup = c(2,2,3,3))
myedges_alt <- tibble(from = c(1,1,4),
to = c(4,2,3),
power = c(3,3,3))
tbl_graph(nodes = mynodes_alt, edges = myedges_alt)
# A tbl_graph: 4 nodes and 3 edges
#
# A rooted tree
#
# Node Data: 4 x 2 (active)
id mygroup
<dbl> <dbl>
1 1 2
2 2 2
3 4 3
4 5 3
#
# Edge Data: 3 x 3
from to power
<int> <int> <dbl>
1 1 4 3
2 1 2 3
3 4 3 3
如您所见,这里只有 3 条边。但是,创建网络即会ggraph
生成一个令人费解的图表。
tbl_graph(nodes = mynodes_alt, edges = myedges_alt) %>%
ggraph(layout = 'grid') +
geom_node_point(aes(color = factor(mygroup))) +
geom_edge_arc(aes(alpha = power, label = power)) +
geom_node_text(aes(label = id), repel = TRUE) +
theme_graph()
到底是怎么回事?那个节点 5 来自哪里?它应该没有边缘。
谢谢!
解决方案
事实证明根本没有错误!在内部,节点tidygraph
按行顺序索引!所以我的 ID 变量具有误导性。
在边缘数据中,从1到4的链接实际上是指从节点数据的第一行节点到第四行节点的链接!
推荐阅读
- r - 无法从复杂的 R 命名列操作中获得所需的结果
- python - 如何让 PyDev 在一个项目中使用多个顶级包
- python - 获取熊猫滚动函数的 CSV 值
- c# - 通过按键/或鼠标单击 Unity3D 为对象设置动画
- excel - VBA 有条件地将工作表导出为 pdf 文件(循环下拉列表和工作表)
- java - Hibernate 将空值放在外键字段中
- python - 将列表转换为 Json 对象错误 Python
- javascript - 续集-“有子句”中的“array_agg”
- html - 点击激活翻转卡片
- sabre - 生产 API 端点上未返回 MultipleBrandedFares