多系列条形图

Multiple series barplot

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

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

df<-cbind(GeneId, Var1,Var2)

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

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

但我想在同一张图上绘制这些图。有任何想法吗?我想过使用 ggplot2lattice 但据我所见,它们只能将它们放在一个网格中,轴彼此独立。

最简单的答案是使用

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

我建议您使用 barplot

阅读并进行实验

试试这个:

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())