如何在气泡图中绘制vendiagram元素?

如何在气泡图中绘制vendiagram元素?,r,ggplot2,data-visualization,bioinformatics,R,Ggplot2,Data Visualization,Bioinformatics,我有一个实验的时间进程数据,我想让他们描绘出共同和独特的元素 我可以在维恩图中做到这一点,但我想把细节扩展到一个广阔的图景中;与下面类似 你能告诉我如何在R编程中做到这一点吗;将分类元素提取到类似于此缺席/在场的情节中 上图的示例数据 structure(list(`A_0 Time` = c(1, 2, 3, 4, NA, NA), `A_24 Time` = c(2, 3, NA, NA, NA, NA), `B_0 Time` = c(5, 6, 3, 4, NA, NA), `B_24

我有一个实验的时间进程数据,我想让他们描绘出共同和独特的元素

我可以在维恩图中做到这一点,但我想把细节扩展到一个广阔的图景中;与下面类似

你能告诉我如何在R编程中做到这一点吗;将分类元素提取到类似于此缺席/在场的情节中

上图的示例数据

structure(list(`A_0 Time` = c(1, 2, 3, 4, NA, NA), `A_24 Time` = c(2, 3, NA, NA, NA, NA), `B_0 Time` = c(5, 6, 3, 4, NA, NA), `B_24 Time` = c(6, 3, NA, NA, NA, NA), X5 = c(NA, NA, NA, NA, NA, NA)), class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"), row.names = c(NA, -6L), spec = structure(list( cols = list(`A_0 Time` = structure(list(), class = c("collector_double", "collector")), `A_24 Time` = structure(list(), class = c("collector_double", "collector")), `B_0 Time` = structure(list(), class = c("collector_double", "collector")), `B_24 Time` = structure(list(), class = c("collector_double", "collector")), X5 = structure(list(), class = c("collector_logical", "collector"))), default = structure(list(), class = c("collector_guess", "collector")), skip = 1), class = "col_spec"))
另一个可能的工作数据集:

structure(list(A_0_Time = c("GO:0003700", "GO:0140110", "GO:0016168", "GO:0046527", "GO:0005372", "GO:0015250", "GO:0033743", "GO:0016758", "GO:0016757", "GO:0009628", "GO:0050896", "GO:0042221", "GO:0009416", "GO:0009314", "GO:1901700", "GO:0010114", "GO:0010035", "GO:0009414", "GO:0009415", "GO:0009266", "GO:0070887", "GO:0009644", "GO:0033993", "GO:0009637", "GO:0009753", "GO:0009611", "GO:0009642", "GO:0051716", "GO:0071482", "GO:0065007", "GO:0042493", "GO:0007623", "GO:0009737", "GO:0071478", "GO:0071489", "GO:0097305", "GO:0048511", "GO:0009409", "GO:0009769", "GO:0071310", "GO:0009408", "GO:0080167", "GO:0032870", "GO:0009605", "GO:0042445", NA, NA, NA, NA, NA, NA, NA), B_0_Time = c("GO:0003700", "GO:0140110", "GO:0015250", "GO:0005372", "GO:0022803", "GO:0015267", "GO:0003677", "GO:0044212", "GO:0001067", "GO:0009628", "GO:0009416", "GO:0009314", "GO:0009639", "GO:0050896", "GO:1901700", "GO:0001101", "GO:0042221", "GO:0071482", "GO:0007623", "GO:0033993", "GO:0071478", "GO:0048511", "GO:0010218", "GO:0009737", "GO:0010114", "GO:0097305", "GO:0009637", "GO:0071489", "GO:0010035", "GO:0010033", "GO:0071214", "GO:0104004", "GO:0009414", "GO:0009415", "GO:0009725", "GO:0009642", "GO:0009719", "GO:0010017", "GO:0009889", "GO:0009640", "GO:0006355", "GO:0009791", "GO:0080167", NA, NA, NA, NA, NA, NA, NA, NA, NA ), A_24_Time = c("GO:0015250", "GO:0005372", "GO:0046527", "GO:0016684", "GO:0004553", "GO:0016798", "GO:0016830", "GO:0004601", "GO:0016209", "GO:0009628", "GO:0070887", "GO:0006833", "GO:0042044", "GO:0001101", "GO:0005975", "GO:0042545", "GO:0050896", "GO:0071456", "GO:0036294", "GO:0071453", "GO:0009636", "GO:1990748", "GO:0017001", "GO:0071492", "GO:0070141", "GO:0000272", "GO:0001666", "GO:0042744", "GO:0045216", "GO:0036293", "GO:0070482", "GO:0033993", "GO:0098869", "GO:0017144", "GO:0034330", "GO:0098754", "GO:0030312", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), B_24_Time = c("GO:0015250", "GO:0005372", "GO:0009628", "GO:1901700", "GO:0042221", "GO:0001101", "GO:0050896", "GO:0033993", "GO:0009737", "GO:0097305", "GO:0009639", "GO:0009414", "GO:0009415", "GO:0010218", "GO:0009416", "GO:0009314", "GO:0010035", "GO:0009266", "GO:0010033", "GO:0010114", "GO:0010224", "GO:0009725", "GO:0009411", "GO:0006833", "GO:0042044", "GO:0009719", "GO:0080167", "GO:0007623", "GO:0048511", "GO:0007568", "GO:0007275", "GO:0043393", "GO:0048856", "GO:0006950", "GO:0010150", "GO:0006970", "GO:0071482", "GO:0090693", "GO:0048580", "GO:0009408", "GO:0032501", "GO:0071478", "GO:0007043", "GO:0071396", "GO:0071489", "GO:0034329", "GO:2000026", "GO:0032502", "GO:0042542", "GO:0009409", "GO:0048226", "GO:0005773")), class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame" ), row.names = c(NA, -52L), spec = structure(list(cols = list( A_0_Time = structure(list(), class = c("collector_character", "collector")), B_0_Time = structure(list(), class = c("collector_character", "collector")), A_24_Time = structure(list(), class = c("collector_character", "collector")), B_24_Time = structure(list(), class = c("collector_character", "collector"))), default = structure(list(), class = c("collector_guess", "collector")), skip = 1), class = "col_spec"))
我的最终目标是在野生型和突变体之间进行基因本体丰富分析

不安的情节不适用于此

这是我感兴趣的一个例子

以下是开始使用data.table进行重塑,然后使用ggplot进行绘图:

# example data
d <- structure(list(`A_0` = c(1, 2, 3, 4, NA, NA), 
               `A_24` = c(2, 3, NA, NA, NA, NA), 
               `B_0` = c(5, 6, 3, 4, NA, NA), 
               `B_24` = c(6, 3, NA, NA, NA, NA), 
               X5 = c(NA, NA, NA, NA, NA, NA)), class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"), row.names = c(NA, -6L), spec = structure(list( cols = list(`A_0 Time` = structure(list(), class = c("collector_double", "collector")), `A_24 Time` = structure(list(), class = c("collector_double", "collector")), `B_0 Time` = structure(list(), class = c("collector_double", "collector")), `B_24 Time` = structure(list(), class = c("collector_double", "collector")), X5 = structure(list(), class = c("collector_logical", "collector"))), default = structure(list(), class = c("collector_guess", "collector")), skip = 1), class = "col_spec"))

library(data.table)
library(ggplot2)

setDT(d)
x <- melt(d[, -5])[, c("grp", "hour") := tstrsplit(variable, "_")
                   ][!is.na(value), .(hour, element = factor(value),
                         col = !is.na(value), grp)]

ggplot(x, aes(x = hour, y = element, shape = grp)) +
  geom_point(size = 5) +
  facet_grid(.~grp) +
  theme_grey()

非常感谢zx8754博士这正是我想要的。非常感谢。一个简单的问题,我如何对情节中元素的存在与否进行排序;唯一A条件在顶部,然后是唯一B,然后是A或B,在最底部是所有公共元素。像这样分散的元素。