R 多系列条形图

R 多系列条形图,r,ggplot2,R,Ggplot2,我有这样的矩阵(除了四个数值变量) 但我想在同一张图上绘制这些图。有什么想法吗?我曾想过使用ggplot2或lattice进行绘制,但据我所见,它们只能将它们放在一个网格中,轴彼此独立 最简单的答案是使用 barplot(rbind(Var1,Var2),col=c("darkblue","red"),beside = TRUE) 我建议您阅读并尝试使用尝试以下方法: df=data.frame(GeneId=c("x","y","z"), Var1=c(0,1,3),Var2=c(1,2,1

我有这样的矩阵(除了四个数值变量)


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

最简单的答案是使用

barplot(rbind(Var1,Var2),col=c("darkblue","red"),beside = TRUE)
我建议您阅读并尝试使用

尝试以下方法:

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

还有一个问题,是否需要修正顺序,使条形图以Var1、Var2的顺序绘制,而不是基于值?如果将“值”列更改为“数值类”,则可以解决排序问题。
barplot(rbind(Var1,Var2),col=c("darkblue","red"),beside = TRUE)
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())