2012-11-28 27 views
6

Çubukların yatay çizginin üzerine çizildiği bir barplot oluşturmak istiyorum.arsa arsındaki arsa çizgisi

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

Ancak, ben defalarca kullanıldığı takdirde barplot() yılında add=T parametre, baskı eserler tanıtabilirsiniz endişeleniyorum:

Aşağıdaki kod gerçekleştirir. Yukarıdaki kodun bir alternatifi varsa merak ediyorum (yukarıdaki kod en hızlı yöntem olabilir).

cevap

11

Az önce ilk aramada hiçbir şey çizmek olabilir:

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

Böylece y, ylim = c (min (0, y), maks (y)) durumunda negatif değerler içeriyor. –

7

Eğer ggplot2 kullanırsanız, bunun için endişelenmenize gerek yok. Buna karşılık

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

: Senin sorunun geom sipariş aşağı kaynar

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

Teşekkürler, bu bilmek yardımcı olur. Ggplot2’ye başka bir bakış atmalıyım. – andrewj