我想构建一个堆叠的条形图,x轴代表基因组(或仅仅是有机体)的数量,y轴代表基因组的确切数量中出现的基因簇的数量。因为我知道这些基因来自哪些有机体,我希望每个条形图都能显示每个基因组在构建这个条形图中的影响。
我的数据示例:
df = data.frame (genomes_involed = c(1,2,2,3,3,1), number_of_genes = c(1,3,2,3,4,2), genome1_genes = c("A","B","*", "B", "A,M","*"), genome2_genes = c("*","C,B","E", "D", "N", "*"), genome3_genes = c("*","*", "L", "H", "O", "P,A"))
其中:
行是基因簇;
1)第一列显示了每个基因簇所涉及的基因组数量;
2)第二列表示聚类中的基因数量;
3)列3-5代表来自不同基因组的基因的具体名称;
"*“表示该基因组的簇中没有基因。
它或多或少有特定的组织,这就是为什么我不确定如何正确地表达它,例如在这个ggplot函数中:
ggplot(df, aes(x = factor(Time), y = Value, fill = factor(Type))) + geom_bar(stat="identity", position = "stack")
因此,我希望在x轴上获得3个条形图,表示基因组1、2或全部3个的数量;y轴表示在1个、2个或所有3个基因组中发现的簇的数量;并显示每个基因组在构建每个具体条形图中的百分比影响。
发布于 2019-05-23 02:56:48
我有点困惑,但我认为您是在说有多个有机体,每个有机体都有基因组1、2或3。您希望在x轴上有三条线-一条用于基因组1,一条用于基因组2,一条用于基因组3-这些堆栈将显示具有基因组1的有机体中有多少具有1个基因簇,有多少具有2个基因簇,以及有多少具有3个基因簇(例如,对于其他每个基因组)?
df = data.frame (genomes_envolved = c(1,2,2,3,3,1), number_of_genes = c(1,3,2,3,3,2), genome1_genes = c("A","B","*", "B", "A,M","*"), genome2_genes = c("*","C,B","E", "D", "N", "*"), genome3_genes = c("*","*", "L", "H", "O", "P"))
df[df=="*"]<-NA #I changed asterisk to NA
df$genomes_envolved<-as.factor(df$genomes_envolved)
df$number_of_genes<-as.factor(df$number_of_genes)
ggplot(data = df, aes(x = genomes_envolved,fill=number_of_genes)) + geom_bar()
https://stackoverflow.com/questions/56219631
复制相似问题