Нарисуйте линии сетки на конкретные значения в xyplot - PullRequest
5 голосов
/ 15 мая 2011

У меня есть xyplot, и я хочу нарисовать линии сетки на значениях 0.

Как это можно сделать?

Ответы [ 3 ]

9 голосов
/ 16 мая 2011

Согласно решетка изменений :

Изменения в решетке 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))

Lattice graph with added line

Если вы хотите panel.grid как стиль линии, то хороший трюк:

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

Lattice graph with added nice style line

5 голосов
/ 15 мая 2011

Если вы используете пакет 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(...)
        })

enter image description here

1 голос
/ 15 мая 2011

Есть функция решетчатых линий, которая заменяет функцию функции 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
...