R 如何控制晶格xyplot中多个因变量的绘图类型?
假设您有一个数据集,其中一个因变量包含多个因变量。使用R 如何控制晶格xyplot中多个因变量的绘图类型?,r,lattice,R,Lattice,假设您有一个数据集,其中一个因变量包含多个因变量。使用xyplot可以将它们简单地绘制为xyplot(y1+y2~x,data=d)。您将如何使用一种打印类型(例如点)打印y1,如何使用不同的打印类型(例如线)打印y2 一个可重复的例子: my.df <- data.frame(time=c(1:20), lower.lim=runif(n=20, min=1,max=4), upper.lim=runif(n=20, min=6,max=9),
xyplot
可以将它们简单地绘制为xyplot(y1+y2~x,data=d)
。您将如何使用一种打印类型(例如点)打印y1
,如何使用不同的打印类型(例如线)打印y2
一个可重复的例子:
my.df <- data.frame(time=c(1:20), lower.lim=runif(n=20, min=1,max=4),
upper.lim=runif(n=20, min=6,max=9),
observed=runif(n=20,min=0,max=10))
xyplot(lower.lim + upper.lim + observed ~ time, data=my.df, type=c("p","l"))
my.df您可以在面板中使用panel.groups
。与group.number
参数一起叠加
,以检测当前正在绘制的变量
panelfun <- function(...,type,group.number) {
if (group.number==3) {
panel.points(...)
panel.lines(...)
} else {
panel.points(...,type="s")
}
}
xyplot(lower.lim+upper.lim+observed ~ time, data=my.df,
panel=function(...) panel.superpose(...,panel.groups=panelfun),
col=c(1,1,2))
panelfun您可以在面板中使用panel.groups
。与group.number
参数叠加,以检测当前正在绘制的变量
panelfun <- function(...,type,group.number) {
if (group.number==3) {
panel.points(...)
panel.lines(...)
} else {
panel.points(...,type="s")
}
}
xyplot(lower.lim+upper.lim+observed ~ time, data=my.df,
panel=function(...) panel.superpose(...,panel.groups=panelfun),
col=c(1,1,2))
panelfun