我有一个数据帧DF:
DF
dput(DF)
structure(list(group = c("root", "root", "NS2A", "NS2A", "NS2A",
"NS5", "NS5", "NS5", "NS5", "NS5", "NS5", "NS5", "NS5", "NS5",
"NS5", "NS5", "NS5", "NS5", "NS5", "NS5", "NS5"), subitem = c("NS2A",
"NS5", "NS2A_C_to_A_Nonsynonymous_3931_1.0015", "NS2A_C_to_A_Nonsynonymous_3931_0.9404",
"NS2A_C_to_A_Nonsynonymous_3931_1.0141", "NS5_G_to_A_Synonymous_8561_2.6323",
"NS5_A_to_T_Synonymous_9728_2.4983", "NS5_G_to_A_Synonymous_8561_2.5331",
"NS5_A_to_T_Synonymous_9728_2.3962", "NS5_G_to_A_Synonymous_8561_2.1411",
"NS5_A_to_T_Synonymous_9728_2.6646", "NS5_G_to_A_Synonymous_8561_2.0874",
"NS5_A_to_T_Synonymous_9728_2.6065", "NS5_G_to_A_Synonymous_8561_2.3789",
"NS5_A_to_T_Synonymous_9728_2.6322", "NS5_G_to_A_Synonymous_8561_3.2712",
"NS5_A_to_C_Nonsynonymous_9276_2.8576", "NS5_A_to_T_Synonymous_9728_2.7555",
"NS5_G_to_A_Synonymous_8561_1.9121", "NS5_A_to_C_Nonsynonymous_9276_5.1328",
"NS5_A_to_T_Synonymous_9728_2.6368"), size = c(0, 0, 1.0015,
0.9404, 1.0141, 2.6323, 2.4983, 2.5331, 2.3962, 2.1411, 2.6646,
2.0874, 2.6065, 2.3789, 2.6322, 3.2712, 2.8576, 2.7555, 1.9121,
5.1328, 2.6368), Pass = c("PA", "PA", "P1", "P7", "P12", "P0",
"P0", "P1", "P1", "P3", "P3", "P5", "P5", "P7", "P7", "P10",
"P10", "P10", "P12", "P12", "P12"), cc = c("#FFFFFF", "#FFFFFF",
"#fc2f92", "#b84592", "#8e43e7", "#3369e7", "#3369e7", "#fc2f92",
"#fc2f92", "#00aeff", "#00aeff", "#ff4f81", "#ff4f81", "#b84592",
"#b84592", "#Cf6c5f", "#Cf6c5f", "#Cf6c5f", "#8e43e7", "#8e43e7",
"#8e43e7")), row.names = c(NA, -21L), class = "data.frame")
I want to create a root white circle which contains two white sub circles each of them containing those subitems listed. Colors are assigned in DF$cc
vertices <- DF %>%
distinct(subitem, size) %>%
add_row(subitem = "root", size = 0)
graph <- graph_from_data_frame(DF, vertices = vertices)
DFfff <- data.frame(group="root",
subitem="root",
size=0,
Pass="PA",
cc="#FFFFFF")
cc <- c("#FFFFFF","#fc2f92","#b84592","#8e43e7","#3369e7","#00aeff","#ff4f81","#Cf6c5f")
DF2=data.frame(Pass=unique(DF$Pass),cc=cc)
data2<-dplyr::inner_join(DF,DF2)
DF<-data2
ggg<-rbind(DF,DFfff)
ggg <- mutate_at(ggg, vars(cc), as.factor)
ggraph(graph, layout = "circlepack", weight = size) +
geom_node_circle(aes(fill=ggg$cc,colour = size,group=size)) +
coord_fixed()
然而,我得到的曲线图,它有错误的 colored颜色 分配给每个圆圈,NS5子圆圈中最大的子项排列在中间(这里是大的蓝色圆圈),但我不想在中间