在莱迪思图R中着色数据子集

时间:2015-05-22 08:59:44

标签: r lattice

我使用以下代码按调查区域按年份xyplot按贝类捕获率lattice绘制了xyplot(catch.rate ~ Year | Area, data, xlab = "Year", ylab = "Catch rate", col ="black", par.settings = list(strip.background=list(col="white")))

subset <- grep("^0214A",data$Haul_ID,ignore.case=TRUE)

我有一年的数据,我想在不同颜色(例如红色)的情节中突出显示。我用以下方法创建了这个数据的子集:

points

我之前使用lattice做过与标准R图相似的事情,但因为我是$("#colomView").attr('class', sel.value); 的新用户,我不知道如何使用此软件包执行此操作。

1 个答案:

答案 0 :(得分:1)

对于没有条件变量的图,col=参数接受与绘制点平行的向量,例如

xyplot(mpg~disp, mtcars, col=mtcars$cyl, pch=20, cex=4)

颜色指向圆柱数。也许你会这样做

cols=c("red", "green")[grepl("^0214A", data$Haul_ID, ignore.case=TRUE) + 1L]

对于具有条件变量的图,可以编写一个接受col向量和subscripts的面板函数,这是描述当前正在绘制的行的数据的索引。将参数传递给面板函数panel.xyplot(),调整每个点的颜色以反映面板中的数据子集。这是面板功能

panel <- function(..., col, subscripts) {
    panel.xyplot(..., col=col[subscripts])
}

并在行动中

xyplot(mpg ~ disp | factor(cyl), mtcars, col=mtcars$cyl, 
       panel=panel, pch=20, cex=4)