能否使用Lattice的auto.key或key实现点数据图例显点、线数据图例显线
Lattice 图例分类型显示标记的最简实现方案
你需要的效果可以通过auto.key的原生向量参数直接实现,无需手动构造复杂的key列表:auto.key的points和lines参数支持传入与绘图系列等长的逻辑向量,每个位置的取值对应对应系列是否在图例中显示点/线标记,刚好匹配你分配的系列类型。
修改后的示例代码如下:
x <- seq(0, 8*pi, by=pi/6) Y1pred <- sin(x) Y1obs <- Y1pred + rnorm(length(x), mean=0, sd=0.2) Y2pred <- cos(x) Y2obs <- Y2pred + rnorm(length(x), mean=0, sd=0.4) xyplot(Y1obs + Y2obs + Y1pred + Y2pred ~ x, type=c('p','p','l','l'), distribute.type=TRUE, # 四个逻辑值分别对应四个系列:Y1obs、Y2obs、Y1pred、Y2pred auto.key=list(points = c(TRUE, TRUE, FALSE, FALSE), lines = c(FALSE, FALSE, TRUE, TRUE), columns=2) )
该方案和Deepayan著作中提到的手动构造key列表的方案效果完全一致,但代码量大幅缩减,逻辑也和你已经设置的type参数一一对应,不需要额外定义图例文本、颜色、标记样式等属性,所有样式会自动继承绘图参数的设置。
内容的提问来源于stack exchange,提问作者Seth W. Bigelow
相关产品推荐
相关产品推荐

