开发者

Draw grid lines on specific values in xyplot

I have a xyplot and I want to draw grid lines on the 0 values.

How this开发者_Go百科 can be done?


According to lattice changelog:

Changes in lattice 0.19
=======================

o Added new arguments 'grid' and 'abline' in panel.xyplot().

So you could do it in one line:

require(lattice)
X <- data.frame(xx=runif(20), yy=rnorm(20))

xyplot(yy~xx, X, abline=list(h=0))

Draw grid lines on specific values in xyplot

If you want panel.grid like line style, then nice trick:

xyplot(yy~xx, X, abline=c(list(h=0),trellis.par.get("reference.line")))

Draw grid lines on specific values in xyplot


If you're using package lattice (which is implied with xyplot), you can use panel.abline to draw lines over labeled ticks.

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(...)
        })

Draw grid lines on specific values in xyplot


There is a lattice llines function that replaces the function of lines() functionality in base. There is also a panel.lines function.

#---------- 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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜