2012-11-28 10 views
6

バーを水平線の上にプロットしたバープロットを作成したいと思います。プロットラインの後ろにバープロット

次のコードは、これを実現:

y <- c(1,2,3,5) 
barplot(y) 
abline(h=mean(y)) 
barplot(y, add=T) 

しかし、私はbarplot()add=Tパラメータは、繰り返し使用する場合は、印刷アーティファクトを導入できることを心配します。私は上記のコードに代わるものがあるかどうか不思議です(ただし、上記のコードが最速の方法かもしれません)。

答えて

11

あなたは自分の最初の呼び出しで何をプロットすることができなかった:

y <- c(1,2,3,5) 
barplot(rep(NA,length(y)),ylim=c(min(0,y),max(y)),axes=FALSE) 
abline(h=mean(y)) 
barplot(y, add=T) 

enter image description here

+0

yが負の値を含んでいる場合のylim = c(min(0、y)、max(y)) –

7

ggplot2を使用している場合は、これについて心配する必要はありません。比較では

ggplot(data.frame(x=1:4, y=y), aes(x=x, y=y)) + 
    geom_bar(stat="identity") + 
    geom_hline(yintercept=mean(y), color="red") 

line in front

:あなたの問題は、GEOM順に沸く

ggplot(data.frame(x=1:4, y=y), aes(x=x, y=y)) + 
    geom_hline(yintercept=mean(y), color="red") + 
    geom_bar(stat="identity") 

line behind

+0

ありがとう、それは知っていると便利です。 'ggplot2'をもう一度見せてください。 – andrewj