5

我有一个xyplot,我想在 0 值上绘制网格线。

如何做到这一点?

4

3 回答 3

9

根据格子变更日志

晶格变化0.19
=======================

o 添加了新参数'grid''abline'panel.xyplot().

所以你可以在一行中做到这一点:

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")))

添加漂亮样式线的格子图

于 2011-05-16T09:38:39.570 回答
5

如果您使用的是包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(...)
        })

在此处输入图像描述

于 2011-05-15T16:14:56.790 回答
1

有一个 lattice 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
于 2011-05-15T14:16:53.550 回答