多系列条形图

时间:2015-03-18 20:24:35

标签: r ggplot2

我的矩阵看起来像这样(期望有四个数字变量)

GeneId<- c("x","y","z")
Var1<- c(0,1,3)
Var2<- c(1,2,1)

df<-cbind(GeneId, Var1,Var2)

我要绘制的是条形图,其中每个基因对每个变量分组都有一个条形(即x将具有bar1 =高度0,bar2 = 1) 我可以通过编写循环并绘制每一行来绘制单独的图形:

for (i in 1:legnth(df$GeneId){
  barplot(as.numeric(df[i,]), main= rownames(df)[i])
}

但我想将图表放在同一图表上。有任何想法吗?我想过要么使用ggplot2lattice,但从我看到它们只能将它们放在网格中,轴相互独立。

2 个答案:

答案 0 :(得分:4)

最简单的答案是使用

barplot(rbind(Var1,Var2),col=c("darkblue","red"),beside = TRUE)

我建议您使用barplot

阅读和试验

答案 1 :(得分:2)

试试这个:

df=data.frame(GeneId=c("x","y","z"), Var1=c(0,1,3),Var2=c(1,2,1))

library(reshape2)
library(ggplot2)

df_ = melt(df, id.vars=c("GeneId"))
ggplot(df_, aes(GeneId, value, fill=variable)) +
geom_bar(stat='Identity',position=position_dodge())

enter image description here