如何将新点添加到 R 中现有的格子图中

How to add new dots to existing lattice plot in R

我用 lattice 包画了一个线图。

library(lattice)  
xyplot(price~month,groups=perc,data=Edf,type='l',
       main="Percentile chart of OpRes Charge Rates Forcast", 
       ylab="OpRes Charge Rate ($/MWh)", xlab="Months",ylim=c(0,40),auto.key=TRUE)

然后我想在现有的情节中添加一些点。

points(rep(1,length(OpResWestJan)),OpResWestJan) 

OpResWestJan 是一个矢量,但点从未出现在现有的图中,也没有警告。

为了完整起见,这里有一个可重现的例子。只需将创建的 xyplot 存储在一个变量中,然后使用 update 以及自定义 panel 函数来添加额外的点。

library(lattice)

## create scatterplot
p <- xyplot(1:10 ~ 1:10)

## insert additional points
update(p, panel = function(...) {
  panel.xyplot(...)
  panel.xyplot(1:10, 10:1, pch = 4, col = "orange")
})

或者,您也可以创建第二个 xyplot 并使用 latticeExtra 中的 as.layer 将其添加到您的初始绘图中。

library(latticeExtra)

## create second scatterplot and add it to first plot
p2 <- xyplot(10:1 ~ 1:10, pch = 4, col = "orange")
p + as.layer(p2)

或者,按照@Pascal 的建议,使用 layerpanel.points 来实现您的目标。

p + layer(panel.points(1:10, 10:1, pch = 4, col = "orange"))