多系列条形图
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])
}
但我想在同一张图上绘制这些图。有任何想法吗?我想过使用 ggplot2
或 lattice
但据我所见,它们只能将它们放在一个网格中,轴彼此独立。
最简单的答案是使用
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())
我的矩阵看起来像这样(预计有四个数字变量)
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])
}
但我想在同一张图上绘制这些图。有任何想法吗?我想过使用 ggplot2
或 lattice
但据我所见,它们只能将它们放在一个网格中,轴彼此独立。
最简单的答案是使用
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())