在xyplot中的特定值上绘制网格线

| 我有一个
xyplot
,我想在0值上绘制网格线。 如何做到这一点?     
已邀请:
如果您使用的是包
lattice
(表示为
xyplot
),则可以使用
panel.abline
在标记的刻度线上方绘制线条。
my.df <- data.frame(a = runif(10, min = -1, max = 1), b = runif(10, min = -1, max = 1))
my.plot <- xyplot(b ~ a, data = my.df)
update(my.plot, panel = function(...) {
            panel.abline(h = 0, v = 0, lty = \"dotted\", col = \"light grey\")
            panel.xyplot(...)
        })
    
根据晶格变化日志:   晶格变化0.19   =======================      o在
panel.xyplot()
中添加了新参数
\'grid\'
\'abline\'
。 因此,您可以在一行中完成此操作:
require(lattice)
X <- data.frame(xx=runif(20), yy=rnorm(20))

xyplot(yy~xx, X, abline=list(h=0))
如果您想要
panel.grid
这样的线条样式,那么不错的技巧:
xyplot(yy~xx, X, abline=c(list(h=0),trellis.par.get(\"reference.line\")))
    
有一个点阵llines函数可以代替base中lines()函数的功能。还有一个panel.lines功能。
#---------- method --------------
 xyplot(-1:1 ~ -1:1, type=\"l\")
trellis.focus(\"panel\", 1, 1)
do.call(\"panel.abline\", list(h=0,v=0, lty=3) )
trellis.unfocus()
# --- that method has the advantage of also demonstrating 
#        how to modify an existing plot

#---------- method 2--------------

 xp <-xyplot(-2:1 ~ -2:1, type=\"l\", panel=function(...){
 panel.xyplot(...)
 panel.abline(h=0,v=0, lty=3)} )
xp
    

要回复问题请先登录注册