[R] Retrieve part of (top right corner) of a "plot.data.frame" plot?

Deepayan Sarkar deepayan.sarkar at gmail.com
Wed Jun 20 23:31:49 CEST 2007


On 6/20/07, Dan Bolser <dan.bolser.r at googlemail.com> wrote:
> Hi,
>
> I believe this question has been asked before, but I cant find and don't
> remember the answer.
>
> The problem is simple, calling 'plot.data.frame(x)' gives a nice 'matrix of
> scatterplots' for each pair of columns in x. for example;
>
> x <-
>   data.frame(a=jitter(01:20),
>              b=jitter(20:01),
>              c=jitter(21:40),
>              d=jitter(rep(01,20)),
>              e=jitter(rep(10,20)),
>              f=jitter(rep(20,20))
>              )
>
> plot(x)
>
> gives a 6 by 6 grid of scatter plots, two (upper right and lower left) for
> each pair of columns in x. (I am going over these basics so that you can
> understand what I mean next).
>
> I would like to see just part of the above result, namely the nine plots in
> the top right of the given plot, or;
>
> a vs. d | a vs. e | a vs. f
> b vs. d | b vs. e | b vs. f
> c vs. d | c vs. e | c vs. f
>
> I tried a number of ways to do this, but I can't find either the right
> formula or the right function to get what I want.
>
> Any suggestions you can give (especially any not involving the source code
> of 'pairs') are most welcome.

Lattice gets you close:

xyplot(a + b + c ~ d + e + f, data = x, outer = TRUE,
       scales = "free", layout = c(3, 3), aspect = 1)

The rest may or may not be simple, depending on what you want exactly.

-Deepayan



More information about the R-help mailing list