我的矩阵看起来像这样(期望有四个数字变量)
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])
}
但我想将图表放在同一图表上。有任何想法吗?我想过要么使用ggplot2
或lattice
,但从我看到它们只能将它们放在网格中,轴相互独立。
答案 0 :(得分:4)
答案 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())