为特定数据组织构建堆叠的条形图

时间:2019-05-20 11:03:12

标签: r ggplot2 bar-chart data-visualization bioinformatics

我想构建堆积的条形图,其中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个基因组中发现的簇数;并显示每个基因组对构建每个混凝土钢筋的影响。

Desired output for this sample is here

1 个答案:

答案 0 :(得分:0)

我有点困惑,但是我想你是说有多种生物,每种生物都有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()

enter image description here