如何将新点添加到 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 的建议,使用 layer
和 panel.points
来实现您的目标。
p + layer(panel.points(1:10, 10:1, pch = 4, col = "orange"))
我用 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 的建议,使用 layer
和 panel.points
来实现您的目标。
p + layer(panel.points(1:10, 10:1, pch = 4, col = "orange"))