我正试图在R.中使用ggraph的circlepack布局创建一个图
我正在使用的代码如下。
df <- data.frame(PID = c("root", "c11111", "c22222", "c11111", "c11111"),
ID = c("c11111", "c22222", "s33333", "c44444", "c55555"),
size = c(1, 20000, 10000, 1, 1))
vertices <- df %>%
distinct(ID, size) %>%
add_row(ID = "root", size = 0)
mygraph <- graph_from_data_frame(df, vertices = vertices)
ggraph(mygraph, layout = 'circlepack') +
geom_node_circle(aes(fill = size)) +
theme_void() +
geom_node_label(aes(label = name))
我不知道为什么c22222没有出现在c33333中——我只看到了c33333。
我非常感谢任何关于正在发生的事情的建议或想法。
您的代码实际上是正确的,但标签是重叠的如果你在绘图中添加一些抖动,你会看到c22222
ggraph(mygraph, layout = 'circlepack') +
geom_node_circle(aes(fill = size)) +
theme_void() +
geom_node_label(aes(label = name),position=position_jitter(width=.2,height=.2))
请注意,此绘图当前未使用图形的size
属性。您应该添加weight=size
ggraph(mygraph, layout = 'circlepack', weight=size)