背景
複数の異なる条件で,upregulateされた遺伝子数とdownregulateされた遺伝子数を1つのグラフに棒グラフとして描きたいと考えました.
最初はピラミッドプロットを使おうと考えましたが,barplotでできたのでメモします.
データの用意
df <- data.frame(up=c(1,3,5), down=c(2,5,7))
d1 <- matrix(1:6 ,3, 2)
d2 <- matrix(6:1 ,3, 2)
result
> df
up down
1 1 2
2 3 5
3 5 7
> d1
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> d2
[,1] [,2]
[1,] 6 3
[2,] 5 2
[3,] 4 1
プロット
barplot
のadd=T
というオプションが肝です.
あとはylim
で調整しています.
barplot( df$up, ylim=c( -1*max(df$down), max(df$up) ) ,
main="test", ylab="down up")
barplot( -1 * df$down, add=T )
またbeside=T
を使うこともできます.
barplot( d1, beside=T, main="test", ylab="down up",
names.arg=c("A","B"), ylim=c( -1 * max(d2), max(d1)) )
barplot( -1 * d2, beside=T, add=T )