【问题标题】:Strip with two lines title - R lattice plot带两条线标题的条带 - R 格子图
【发布时间】:2016-02-11 11:16:02
【问题描述】:

我很难在 lattice 图中正确书写条带名称。这是一个数据示例:

    resposta<-rnorm(90)
    preditor1<-rep(rep(c("a","b"),each=15),3)
    preditor2<-rep(c("sp1","sp2","sp3"),each=30)

我正在做以下情节:

    library(lattice)
    bwplot(resposta~preditor1|preditor2,layout=c(3,1),
           strip=strip.custom(
               factor.levels=c(
                   expression(atop(italic("P. paradoxa"),"outra info")),
                   expression(atop(italic("H. raniceps"),"outra info")),
                   expression(atop(italic("P. azurea"),"outra info")))
           ),
           par.settings=list(layout.heights=list(strip=2.5))
           )

我的问题是,有没有办法在物种名称和“外部信息”之间获得更小的空间。这个问题开始是因为,由于标题是物种名称,它们需要用斜体,但我还需要在标题上添加一些额外的信息,这不应该是斜体。我在 Google 上看到可以在 expression 中使用 atop 来获取 2 行文本,但是物种名称和下一行之间的空格太大。我希望他们能靠得更近一些,但我不知道这是否可行,如果可以,该怎么做。

有谁知道如何在条形名称中跳过行,保留斜体的表达式,但在名称之间不留太多空间?情节上还不错,但是当我使用tiff()保存到更大尺寸的图像时,条带名称缺少一些部分,我认为主要是由于线之间的距离。

【问题讨论】:

    标签: r plot graphics lattice trellis


    【解决方案1】:

    正如 Duncan Murdoch 通过R-help mailing list 所解释的,如果不使用atop(在您的特定情况下会导致不希望的大行距),则无法轻松解决此问题。但是,您可以通过使用 downViewport 导航到相应的条形面板并随后使用 grid.text 分别插入两行文本来手动实现目标。

    ## create plot with invisible strip labels
    bwplot(resposta ~ preditor1 | preditor2, layout = c(3, 1),
           par.settings = list(layout.heights = list(strip = 2.5)), 
           par.strip.text = list(col = "transparent")
    )
    
    ## add species labels
    lbl <- c("P. paradoxa", "H. raniceps", "P. azurea")
    
    for (i in 1:3) {
      # navigate to i-th strip
      vp <- paste0("plot_01.strip.", i, ".1.vp")
      downViewport(vp)
    
      # add first and second line of text
      grid.text(bquote(italic(.(lbl[i]))), vjust = ifelse(i %in% 1:2, 0, -.25))
      grid.text("outra info", vjust = 1.1)
    
      # navigate to top level
      upViewport(0)
    }
    

    另外,请务必查看current.vpTree(),它会返回格状图的当前面板结构。重新定义面板布局、添加另一个组等之后,您很可能必须调整面板名称的创建以导航到for 循环内的(对象“vp”)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多