65 votes

Treillis: plusieurs parcelles dans une fenêtre?

Je suis en train de mettre plusieurs treillis parcelles dans une fenêtre à l'aide d' levelplot en définissant par(mfrow=c(2,1)) , mais il semble ignorer cela.

Est-il une fonction particulière pour la définition de plusieurs parcelles en lattice?

72voto

BondedDust Points 105234

Le "quadrillage" paquet est construit sur la grille paquet et attache son espace de noms lors de "quadrillage" chargé. Toutefois, pour utiliser le grid.layout fonction, vous devez explicitement load() pkg::grille. L'autre alternative, qui est probablement le plus facile est de l' grid.arrange fonction dans le groupe::gridExtra:

 install.packages("gridExtra")
 require(gridExtra) # also loads grid
 require(lattice)
 x <- seq(pi/4, 5 * pi, length.out = 100)> y <- seq(pi/4, 5 * pi, length.out = 100)
 r <- as.vector(sqrt(outer(x^2, y^2, "+")))

 grid <- expand.grid(x=x, y=y)
 grid$z <- cos(r^2) * exp(-r/(pi^3))
 plot1 <- levelplot(z~x*y, grid, cuts = 50, scales=list(log="e"), xlab="",
           ylab="", main="Weird Function", sub="with log scales",
           colorkey = FALSE, region = TRUE)

 plot2 <- levelplot(z~x*y, grid, cuts = 50, scales=list(log="e"), xlab="",
           ylab="", main="Weird Function", sub="with log scales",
           colorkey = FALSE, region = TRUE)
 grid.arrange(plot1,plot2, ncol=2)

enter image description here

42voto

doug Points 29567

Le Treillis souvent (mais pas toujours) ignore le par commande, donc j'ai juste éviter de l'utiliser lors de la représentation w/ Treillis.

Pour placer plusieurs treillis des parcelles sur une seule page:

  • créer (mais ne pas l'intrigue) le treillis/trellis parcelle objets, puis

  • appel d'impression une fois pour chaque parcelle

  • pour chaque impression d'appel, passer des arguments pour (i) la parcelle; (ii) de plus, définie à VRAI, et qui n'est passé pour le premier appel d'impression, et (iii) pos, qui donne la position de chaque parcelle sur la page spécifiée en tant que x-y paires de coordonnées pour le tracé du coin inférieur gauche et supérieur droit coin, respectivement--c'est à dire un vecteur à quatre chiffres.

beaucoup plus facile de montrer que pour dire:

data(AirPassengers)     # a dataset supplied with base R
AP = AirPassengers      # re-bind to save some typing

# split the AP data set into two pieces 
# so that we have unique data for each of the two plots
w1 = window(AP, start=c(1949, 1), end=c(1952, 1))
w2 = window(AP, start=c(1952, 1), end=c(1960, 12))

px1 = xyplot(w1)
px2 = xyplot(w2)

# arrange the two plots vertically
print(px1, position=c(0, .6, 1, 1), more=TRUE)
print(px2, position=c(0, 0, 1, .4))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X