我有两张图,第一张图是分类图,第二张图代表第二级连接。 完美的图是分层边束。 但是,我只需要可视化第二级连接中的文本 我的数据:
hierarchy=data.frame(from=c("1","1","1","1","1.1","1.1","1.2","1.2","1.3","1.3","1.4","1.4"),
to=c("1.1","1.2","1.3","1.4","1.1.1","1.1.2","1.2.1","1.2.2","1.3.1","1.3.2","1.4.1","1.4.2"))
rel = data.frame(from=c("1.3.1","1.3.1","1.4.2","1.4.2"),
to=c("1.1.2","1.3.2","1.2.1","1.1.1"))
通常使用“cactustree”布局制作“分层边缘束”的代码是:
hierarchy_gr = as_tbl_graph(hierarchy)
vertices_hierarchy = hierarchy_gr %>% V()
from <- match( rel$from, vertices_hierarchy$name)
to <- match( rel$to, vertices_hierarchy$name)
ggraph(hierarchy_gr, 'cactustree',upright=TRUE) +
# geom_node_circle(aes(fill = depth), size = 0.25, alpha = 0.2) +
geom_conn_bundle(data = get_con(from = from, to = to), colour="red",linewidth=1,tension = 1) +
geom_node_text(aes(label = name, size=0.5),check_overlap = TRUE) +
theme(legend.position = "none") +
coord_fixed()
结果是: 我有一个额外的数据框,它描述基于调查的关系的属性。关系、连接保持不变,但一些连接的属性发生了变化。 例如:
survey = data.frame(loc=c("A","A","B","C","C","D","D"),
from=c("1.3.1","1.3.1","1.4.2","1.3.1","1.4.2","1.3.1","1.4.2"),
n=c(2,5,3,4,1,3,3))
目的是获得各种分层边缘捆绑作为最终结果,具有相同的最终分层结构,但仅根据“调查”的数据框显示关系,并具有定义例如“调查”的链接属性。连接的宽度。 比如这个: 请原谅我没有发布测试代码。我正在尝试,但我仍然对它如何运作感到困惑。所以我决定尝试在这里问一个问题。
抱歉,很简单:
ggraph(hierarchy_gr, 'cactustree',upright=TRUE) +
geom_conn_bundle(data = get_con(from = from, to = to, n = n, attr = attr),aes(edge_color=attr,edge_width=n),tension = 1) +
geom_node_text(aes(label = name, size=0.5),check_overlap = TRUE) +
coord_fixed()
但我还没有设法解决仅显示连接节点的文本的问题(请参阅分层边束:geom_node_text仅可视化来自连接的文本