【发布时间】:2015-02-08 19:42:07
【问题描述】:
我知道我可以使用 latticeExtra 中的 panel.xyarea 来用任何颜色填充绘图区域。如果没有在xyplot 中定义type 参数,这样的填充将遵循默认type="p" 的路线:
library(lattice)
library(latticeExtra)
data <- data.frame(time=1:24,value=rnorm(24))
xyplot(value~time, data,
panel=function(x,y,...){
panel.xyarea(x,y,...)
panel.xyplot(x,y,...)})
这将绘制panel.xyarea 和来自panel.xyplot 中默认type="p" 的点。现在当我想更改绘图线的type 时出现问题,例如使其成为步进函数type="S":
xyplot(value~time, data, type="S",
panel=function(x,y,...){
panel.xyarea(x,y,...)
panel.xyplot(x,y,...)}
正如您在上面的示例中看到的,panel.xyarea 不会填充新阶跃函数下方的区域,而是将两个区域重叠绘制。如果我将type="S" 移动到panel.xyarea,它不会改变任何东西——实际上它根本没有注册type 参数,并且因为它不存在而绘图。
有没有一种方法可以绕过这个并让panel.xyarea 填充我定义的任何类型的图 - 无论是阶跃函数 (type="S")、黄土 (type="smooth") 还是回归 (type="r")?或者也许有比panel.xyarea 更好的东西在这种情况下使用?
【问题讨论】:
-
不,没有简单且完全通用的方法可以做到这一点(无需修改许多不同的 lattice 函数)。您是否对
type=的特定值的不完全通用(但简单)的解决方案感兴趣? -
当然,让我们从某个地方开始,拍摄@Josh
-
好的,我会为
type="S"和type="smooth"整理几个简单的例子。