R中的bwplot:向刻度,参考线和填充条添加刻度

时间:2013-09-02 14:44:16

标签: r lattice

我发现很难在格子的bwplot上找到帮助,在尝试了各种各样的事情后,我想我会尝试一个社区。希望那里有人经历过!

我制作了following plot

enter image description here

现在我想:

  1. 在y轴上添加三个刻度(在250,750和1500米处)
  2. 根据所述y轴上的六个距离中的每一个添加水平参考线
  3. 颜色五个特定ID条(F1,F2,F3,F5和M1),最好是浅灰色
  4. 到目前为止这是代码,显然缺少一些严重的镶板。 = 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)
    

    任何帮助都非常有用!

1 个答案:

答案 0 :(得分:3)

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

开始
bwplot(height~voice.part, singer)
  1. 在y轴上添加三个刻度(250,750和1500米)

    通过添加参数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.abline然后调用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(...)
           })