如何在R中的现有点阵图中添加新点

时间:2015-06-30 01:43:29

标签: r plot lattice trellis

我使用 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是一个向量,但点在现有的情节中从未出现,并且没有警告。

1 个答案:

答案 0 :(得分:5)

为了完整起见,这是一个可重复的例子。只需将创建的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")
})

scatterplot

或者,您也可以创建第二个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"))