2012-11-28 29 views
6

Tôi muốn tạo một thanh cốt thép nơi các thanh được vẽ trên đầu dòng ngang.dòng âm mưu đằng sau thanh cốt thép

Các mã sau đây thực hiện việc này:

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

Tuy nhiên, tôi lo ngại rằng các tham số trong add=Tbarplot(), nếu sử dụng nhiều lần, có thể giới thiệu hiện vật in ấn. Tôi tò mò nếu có một thay thế cho mã trên (mặc dù mã trên có thể là phương pháp nhanh nhất).

Trả lời

11

Bạn chỉ có thể âm mưu gì trong cuộc gọi đầu tiên của bạn:

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

Đã chỉnh sửa sao cho ylim = c (min (0, y), max (y)) trong trường hợp y có chứa giá trị âm –

7

Nếu bạn sử dụng ggplot2, bạn không phải lo lắng về điều này. Vấn đề của bạn nắm trình tự Geom:

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

So:

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

Xin cảm ơn, điều đó rất hữu ích. Tôi nên cho 'ggplot2' một cái nhìn khác. – andrewj

Các vấn đề liên quan