2012-07-17 24 views
0

我有數據幀R圖形晶格地塊-Creating條非0值

df <- data.frame(
    site=rep(c("s1","s2","s3"),3), 
    grp=c("a","a","a","b","b","b","c","c","c"), 
    total=c(0,1,2,0,4,6,8,0,2) 
) 

df 

site grp total 
1 s1  a  0 
2 s2  a  1 
3 s3  a  2 
4 s1  b  0 
5 s2  b  4 
6 s3  b  6 
7 s1  c  8 
8 s2  c  0 
9 s3  c  2 

#that I use to create the following lattice plot 

library(lattice) 

median<-with(df,reorder(grp,total,mean)) 
df$median<-median 
df1<-subset(df,total!=0) 

barchart(df$site~total|median,data=df, xlim=c(0,10), col="grey", border="NA", 
     par.settings=list(axis.text=list(cex=0.85), fontsize=list(text=10)), 
     par.strip.text=list(cex=0.9), par.strip.col="white", layout = c(3,2), 
     aspect = (0.3),scales=list(y=list(relation="free")) 
) 

我想空間酒吧均勻,還通過降低DF $總計$ DF每一級安排他們grp(iea,b,c)。有任何想法嗎?由於

回答

1
df$median<-median 
df1<-subset(df,total!=0) 

然後用df1但也許我失去了一些東西

+0

謝謝。它刪除了0值的標籤,但間距仍然不均勻(即使沒有標籤,仍然存在空格)是否有必要使每個圖形上的條形均勻分佈y軸,這些條形獨立於y軸在其他圖上?再次感謝 – Elizabeth 2012-07-17 12:35:07

+0

我將代碼添加到了代碼中,並試圖澄清一些問題。關於如何創建均勻條間距以及爲每個grp級別減小條的排列方式(即a,b ,c)?感謝一百萬 – Elizabeth 2012-07-17 13:24:39

0

使用df1這是在另一個答案提供,再加上一些定製prepanels和單板:

barchart(site ~ total | median, data = df1, 
     prepanel = function(x, y, ...) { 
      xx <- reorder(droplevels(y), x) 
      list(ylim = levels(xx), 
       yat = sort(unique(as.numeric(xx)))) 
     }, 
     panel = function(x, y, ...) { 
      xx <- reorder(droplevels(y), x) 
      panel.barchart(x, xx, ...) 
     }, scales = list(y = list(relation = "free"))) 

Imgur

PS :我還清理了一些電話中的絨毛。