Dear Tom,

You can’t do that with facet_grid() or facet_wrap(). You could try combine 
several plots with grid.arrange().

p1 <-
  ggplot(subset(data, group == 
"a"),aes(x=x,y=y))+geom_point(aes(color=group))+facet_wrap(~id, nrow = 1) + 
scale_colour_discrete(drop = FALSE)
p2 <-
  ggplot(subset(data, group == 
"b"),aes(x=x,y=y))+geom_point(aes(color=group))+facet_wrap(~id, nrow = 1) + 
scale_colour_discrete(drop = FALSE)
p3 <-
  ggplot(subset(data, group == 
"c"),aes(x=x,y=y))+geom_point(aes(color=group))+facet_wrap(~id, nrow = 1)  + 
scale_colour_discrete(drop = FALSE)
library(gridExtra)
grid.arrange(p1, p2, p3)

If those solutions are not good enough, then you'll need to craft it in grid. 
Or look at the source code of ggplot2 and change that to get what you want.

Best regards,

ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature and 
Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium
+ 32 2 525 02 51
+ 32 54 43 61 85
thierry.onkel...@inbo.be
www.inbo.be

To call in the statistician after the experiment is done may be no more than 
asking him to perform a post-mortem examination: he may be able to say what the 
experiment died of.
~ Sir Ronald Aylmer Fisher

The plural of anecdote is not data.
~ Roger Brinner

The combination of some data and an aching desire for an answer does not ensure 
that a reasonable answer can be extracted from a given body of data.
~ John Tukey

Van: Tom Wright [mailto:t...@maladmin.com]
Verzonden: woensdag 7 januari 2015 15:43
Aan: ONKELINX, Thierry
CC: R. Help
Onderwerp: Re: [R] ggplot with sparse layout

Thanks, this is pretty good. Unfortunately I made an error in generating the 
sample dataframe, this code better represents the situation:
data<-data.frame(id=factor(rep(1:6,each=3)),
                  group=factor(rep(c('a','a','b','c','c','c'),each=3)),
                  x=runif(18,0,10),
                  y=rnorm(18,0,1))
I would like the first row to contain plots for id=1 & id=2, the second row 
plots for id=3 and the third row for id=4:6



On Tue, Jan 6, 2015 at 5:58 PM, ONKELINX, Thierry <thierry.onkel...@inbo.be> 
wrote:
Dear Tom,

Does ggplot(data,aes(x=x,y=y))+geom_point(aes(color=group))+facet_wrap(~group + 
id) gives what you need?

Note that facet_grid by design aligns the subplots into rows and columns with 
the same level.

Best regards,

ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature and 
Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium
+ 32 2 525 02 51
+ 32 54 43 61 85
thierry.onkel...@inbo.be
www.inbo.be
To call in the statistician after the experiment is done may be no more than 
asking him to perform a post-mortem examination: he may be able to say what the 
experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does not ensure 
that a reasonable answer can be extracted from a given body of data. ~ John 
Tukey

________________________________________
Van: R-help [r-help-boun...@r-project.org] namens Tom Wright [t...@maladmin.com]
Verzonden: dinsdag 6 januari 2015 22:13
Aan: R. Help
Onderwerp: [R] ggplot with sparse layout

Hi,

I would like to plot the following data such that each plot represents the
data from a single id and the plots are grouped according to the group
variable.

data<-data.frame(id=factor(rep(1:6,each=3)),
 group=factor(c('a','a','b','c','c','c')),
 x=runif(18,0,10),
 y=rnorm(18,0,1))

The following ggplot nearly works but I would prefer to not plot the
missing combinations, i.e. each row will be a different length.

ggplot(data,aes(x=x,y=y))+geom_point(aes(color=group))+facet_grid(group~id)

Is this possible using ggplot or will I need to craft something using grid?

Thanks for any ideas.
Tom
        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Disclaimer<https://drupal.inbo.be/nl/disclaimer-mailberichten-van-het-inbo>

Disclaimer<https://drupal.inbo.be/nl/disclaimer-mailberichten-van-het-inbo>
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to