2

我发现很难在 lattice 的 bwplot 上找到帮助,在尝试了各种事情之后,我想我会尝试向社区询问。希望有经验的大神!

我制作了以下情节

在此处输入图像描述

现在我想:

  1. 在 y 轴上再添加三个刻度(在 250、750 和 1500 m 处)
  2. 根据所述 y 轴上的六个距离中的每一个添加水平参考线
  3. 为五个特定 ID 条(F1、F2、F3、F5 和 M1)着色,最好是浅灰色

这是到目前为止的代码,显然缺少一些严重的镶板。=S

levels(dp$period)<-c("Pre-Translocation", "Translocation")
bwtheme  <- canonical.theme(color = FALSE)
bwplot(DJL ~ id|period, data=dp, main="Day Journey Length",
   pch="|", xlab="ID", ylab="Distance (m)",
   par.settings=bwtheme)

非常感谢任何帮助!

4

1 回答 1

4

对于一个可重现的示例,我加载示例数据singer并从一个基本图开始

bwplot(height~voice.part, singer)
  1. 在 y 轴上再添加三个刻度(在 250、750 和 1500 m 处)

    通过添加一个参数来做到这一点scales=list(y=list(at=c(250, 750, 1500))。这记录在?bwplot. 例如,在这里我通过at在所需位置创建一个带有刻度的变量,然后在参数中使用这些变量,在我的示例数据上放置任意刻度scales

    at <- seq(60, 75, 2.5)
    bwplot(height~voice.part, singer, scales=list(y=list(at=at)))
    
  2. 根据所述 y 轴上的六个距离中的每一个添加水平参考线

    通过指定一个调用panel.ablinethen的面板函数来做到这一点panel.bwplot,如帮助页面上的第一个示例所示?panel.bwplot。我认为您也可以grid通过?bwplot. 在这里,我们在第 1 部分中使用的变量指定的坐标处添加线条at

    bwplot(height~voice.part, singer, scales=list(y=list(at=at)),
           panel=function(...) {
               panel.abline(h=at, col="gray")
               panel.bwplot(...)
           })
    
  3. 为五个特定 ID 条(F1、F2、F3、F5 和 M1)着色,最好是浅灰色

    ?panel.bwplot,使用fill参数提供颜色向量,使 F1、F2、F3、F5 和 M1 为灰色,其他为白色。在这里,我通过创建颜色变量将男高音着色为fill灰色

    lvls <- levels(singer$voice.part)
    fill <- rep("white", length(lvls))
    fill[lvls %in% c("Tenor 1", "Tenor 2")] <- "gray"
    

    并在情节中使用它

    bwplot(height~voice.part, singer, scales=list(y=list(at=at)),
           fill=fill, panel=function(...) {
               panel.abline(h=at, col="gray")
               panel.bwplot(...)
           })
    
于 2013-09-02T16:12:41.030 回答