2010-07-12 120 views
1

我有两个关于在格子中定制条形图的问题。我试图给条形图添加标签,分别编辑比例尺,但我的代码不起作用。我做错了什么?应该有一些值包括“%”。在格子条形图中添加线条和标签[R]

第二个问题是如何在条纹后面的绘图区域的顶部和底部之间绘制线条,并且位于打印的比例值处。感谢您的任何建议和帮助,塞巴斯蒂安。

下面是代码:

library(lattice) 
library(plyr) 
data(postdoc, package="latticeExtra") 
colnames(postdoc) <- c("Legendtext 1", "2", "3", "4", "5") 
colors <- c(rgb(166,27,30,maxColorValue = 255),        
     rgb(192,80,77,maxColorValue = 255), 
     rgb(24,65,83,maxColorValue = 255), 
     rgb(60,143,167,maxColorValue = 255), 
     rgb(130,184,208,maxColorValue = 255)) 
colorset <- simpleTheme(col=colors,           
        border="white") 
data.p <- prop.table(postdoc, margin=1) 
data <- data.p * 100 
pl <- barchart(data, 
      par.settings = colorset,          
      box.ratio = 1,             
      xlab = " ",             
      panel = function(...) { # Code for panel function by rcs (http://stackoverflow.com/questions/3220702/display-values-in-stacked-lattice-barchart-r) - thank you very much! 
      panel.barchart(...) 
      tmp <- list(...) 
      tmp <- data.frame(x=tmp$x, y=tmp$y) 
      # calculate positions of text labels       
      df <- ddply(tmp, .(y), 
         function(x) { 
          data.frame(x, pos=cumsum(x$x)-x$x/2) 
         }) 
      panel.text(x=df$pos, y=df$y,         
         label=sprintf("%.0f", df$x),      
         cex=0.7, col="white") 
      panel.axis(side = c("bottom"), 
         at = list(0, 20, 50, 75, 100), 
         labels = list("0%", "25%", "50%", "75%", "100%"), 
         ticks = TRUE)  
      }, 
      auto.key=list(columns=5, space="bottom",       
         cex=0.8, size=1.4, adj=1, 
         between=0.2, between.colums=0.1, 
         size = 1.3, points = FALSE, rectangles = TRUE)) 

回答

3

问题1:我下面的作品(half=FALSE

panel.axis(side=c("bottom"), 
      at=c(0, 25, 50, 75, 100), 
      labels=c("0%", "25%", "50%", "75%", "100%"), 
      rot=0, half=FALSE, ticks=TRUE) 

问题2:panel.barchart()之前panel.grid(或panel.abline)添加呼叫你面板功能:

panel.grid(h=FALSE, v=-1) 
+0

非常感谢你!我使用了panel.abline,因为它包含更多编辑图形参数的可能性。而不是panel.axis对我来说最好使用scales参数,因为标签应该在绘图区域之外,并且我在剪辑和视口中遇到了一些问题。你的帮助对我来说非常重要,可以完成图表并且更多地了解格子。非常感谢! – SebastianW 2010-07-14 18:47:09