我有看起来像这样的矩阵(期望有四个数字变量)
GeneId<- c("x","y","z")
Var1<- c(0,1,3)
Var2<- c(1,2,1)
df<-cbind(GeneId, Var1,Var2)
Run Code Online (Sandbox Code Playgroud)
我要绘制的是一个条形图,其中每个基因对每个分组的变量都有一个条形(即 x 的 bar1 = 高度 0,bar2 = 1)我可以通过编写一个循环并绘制每一行来绘制单个图形:
for (i in 1:legnth(df$GeneId){
barplot(as.numeric(df[i,]), main= rownames(df)[i])
}
Run Code Online (Sandbox Code Playgroud)
但我想在同一张图上绘制这些图。有任何想法吗?我想使用两者之一ggplot2,lattice但从我所见,它们只能将它们放在一个网格中,轴彼此独立。
我想绘制背对背条形图,但是每一侧都位于独立的轴上。我可以通过取一组的负值来连续绘制它们,但这使它们具有相同的访问权限,并且因为 p 值较小,所以它们的条形几乎没有表示出来。
library(ggplot2)
df <-structure(list(Description = c("a", "b", "c", "d", "e", "f",
"g", "h", "a", "b", "c", "d", "e", "f", "g", "h"), test = c("size",
"size", "size", "size", "size", "size", "size", "size", "p",
"p", "p", "p", "p", "p", "p", "p"), value = c(0.1, 0.1, 0.125,
0.1, 0.075, 0.1, 0.075, 0.125, 0.000230705311441713, 0.000314488619269942,
0.00106639822095382, 0.00108290238851994, 0.00114723539549198,
0.00160204850890075, 0.0019276388745184, 0.00320371567547557)), .Names = c("Description",
"test", "value"), row.names = c(NA, -16L), class = "data.frame")
df$value[df$test == 'p'] <- -(df$value[df$test == 'p'])
ggplot(df, aes(x=Description, …Run Code Online (Sandbox Code Playgroud)