[R] Multiple hist(ograms) - One plot

Deepayan Sarkar deepayan.sarkar at gmail.com
Fri Oct 3 08:24:07 CEST 2008


On 10/2/08, Michael Just <mgjust at gmail.com> wrote:
> Dieter and Thierry:
>
>  Per you suggestions I have tried:
>
>  ggplot2 from Thierry:
>
> > p <- ggplot(dat, aes(x=bbContag, y=..density..)) + geom_histogram()
>
> > p + facet_grid(. ~ sc_recov %in% c(21,31,41))
>
>  But get the followinng error:
>
> Error in check_formula(formula, varnames) :
>   Formula contains variables not in list of known variables
>
>
> If I don't make selections it works, but makes that very busy plot.
>
>  histogram from Dieter:
>  > histogram(~bbContag | sc_recov %in% c(21,31,41), data=dat)
>  This produces a plot with only two histograms side by side, but I have
>  chosen three groups, where is the third? I tried only choosing two groups
>  and it plotted two histograms different than when I tried choosing three.

Actually, Dieter's suggestion was to use the subset argument, which
would go something like

histogram(~bbContag | sc_recov, data=dat,
          subset = (sc_recov %in% c(21,31,41)))

Given that your 'sc_recov' seems to be a numeric variable, you will
probably get better annotation with

histogram(~bbContag | factor(sc_recov), data=dat,
          subset = (sc_recov %in% c(21,31,41)))

-Deepayan

>  Please advise,
>  Thank you for your continued help,
>  Michael Just
>
>
>
>  On Thu, Oct 2, 2008 at 5:21 AM, ONKELINX, Thierry
>
> <Thierry.ONKELINX at inbo.be>wrote:
>
>  > Michael,
>  >
>  > Use %in% to select multiple cases:
>  >
>  > dat[dat$sc_recov %in% c(21, 31, 41), ]
>  >
>  >
>  > ------------------------------------------------------------------------
>  > ----
>  > ir. Thierry Onkelinx
>  > Instituut voor natuur- en bosonderzoek / Research Institute for Nature
>  > and Forest
>  > Cel biometrie, methodologie en kwaliteitszorg / Section biometrics,
>  > methodology and quality assurance
>  > Gaverstraat 4
>  > 9500 Geraardsbergen
>  > Belgium
>  > tel. + 32 54/436 185
>  > Thierry.Onkelinx at 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
>  >
>  > -----Oorspronkelijk bericht-----
>  > Van: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
>  > Namens Michael Just
>  > Verzonden: donderdag 2 oktober 2008 10:59
>  > Aan: r-help at r-project.org
>  > CC: dieter.menne at menne-biomed.de
>  > Onderwerp: Re: [R] Multiple hist(ograms) - One plot
>  >
>  > Dieter Menne:
>  > Thanks for the suggestion and link, it looks good. I think my trouble
>  > now is
>  > lack of basic R knowledge.
>  >
>  > Cheers,
>  > Michael
>  >
>  > For example,
>  >
>  > I tried:
>  > histogram(~bbContag | sc_recov, data=dat)
>  >
>  > This would work fine if I could select cases from sc_recov. How can I
>  > select
>  > more than one case? I know I can do:
>  >
>  > sc_recov.21 <- dat[dat$sc_recov=21,]
>  >
>  > but how could I select all cases where sc_recov = 21, 31 or 41?
>  >
>  >
>  > On Thu, Oct 2, 2008 at 3:33 AM, Michael Just <mgjust at gmail.com> wrote:
>  >
>  > > Hello,
>  > > If I use:
>  > >
>  > > p <- ggplot(dat, aes(x=bbContag, y=..density..)) + geom_histogram()
>  > >
>  > > and then:
>  > >
>  > > p + facet_grid(. ~ sc_recov)
>  > >
>  > > Its a little crazy because I have 48 different values in 'sc_recov'.
>  > > Instead I want to select cases from 'sc_recov' and only use three at a
>  > time:
>  > >
>  > > I tried:
>  > > > p + facet_grid(sc_recov=="21" ~.)
>  > > Error in check_formula(formula, varnames) :
>  > >   Formula contains variables not in list of known variables
>  > >
>  > > How can I select cases?
>  > >
>  > > Any ideas or suggestions?
>  > > Thanks,
>  > > M Just
>  > >
>  > > On Thu, Oct 2, 2008 at 2:42 AM, ONKELINX, Thierry <
>  > > Thierry.ONKELINX at inbo.be> wrote:
>  > >
>  > >> Dear Michael,
>  > >>
>  > >> Try ggplot2. Use something like
>  > >>
>  > >> install.packages("ggplot2")
>  > >> library(ggplot2)
>  > >> recov <- 0:2
>  > >> n <- 1000
>  > >> all <- data.frame(bbED = rnorm(3 * n, mean = recov), recov =
>  > >> factor(rep(recov, n)))
>  > >> ggplot(data = all, aes(x = bbED)) + geom_histogram() + facet_grid(. ~
>  > >> recov)
>  > >> ggplot(data = all, aes(x = bbED)) + geom_histogram() +
>  > facet_grid(recov
>  > >> ~ .)
>  > >> ggplot(data = all, aes(x = bbED, colour = recov)) + geom_density()
>  > >>
>  > >> You'll find more information on ggplot2 at http://had.co.nz/ggplot2/
>  > >>
>  > >> HTH,
>  > >>
>  > >> Thierry
>  > >>
>  > >>
>  > ------------------------------------------------------------------------
>  > >> ----
>  > >> ir. Thierry Onkelinx
>  > >> Instituut voor natuur- en bosonderzoek / Research Institute for
>  > Nature
>  > >> and Forest
>  > >> Cel biometrie, methodologie en kwaliteitszorg / Section biometrics,
>  > >> methodology and quality assurance
>  > >> Gaverstraat 4
>  > >> 9500 Geraardsbergen
>  > >> Belgium
>  > >> tel. + 32 54/436 185
>  > >> Thierry.Onkelinx at 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
>  > >>
>  > >> -----Oorspronkelijk bericht-----
>  > >> Van: r-help-bounces at r-project.org
>  > [mailto:r-help-bounces at r-project.org]
>  > >> Namens Michael Just
>  > >> Verzonden: donderdag 2 oktober 2008 7:29
>  > >> Aan: r-help at r-project.org
>  > >> Onderwerp: [R] Multiple hist(ograms) - One plot
>  > >>
>  > >> Hello,
>  > >> I am trying to plot multiple histograms with the same scales, etc
>  > into
>  > >> one
>  > >> plot. The commands below produce a 3 page PDF with each histogram
>  > >> occupying
>  > >> the upper right quadrant. And use slightly different scales on the X
>  > and
>  > >> Y
>  > >> axes.
>  > >>
>  > >> > s21 <- dat[dat$sc_recov=="21",]
>  > >> > s21.ED <- subset(s21, select=(bbED))
>  > >> > s31 <- all[all$sc_recov=="31",]
>  > >> > s31.ED <- subset(s31, select=(bbED))
>  > >> > s41 <- all[all$sc_recov=="41",]
>  > >> > s41.ED <- subset(s41, select=(bbED))
>  > >> > pdf("234_1_ED.pdf")
>  > >> > par(mfrow = c(2, 2), oma = c(0, 0, 2, 0))
>  > >> > hist(s21.ED) + hist(s31.ED) + hist(s41.ED)
>  > >> > dev.off()
>  > >>
>  > >> Also, for example if I add something like col="x", or main="x" to the
>  > >> hist(x, ...) nothing appears on the plot.  ?
>  > >>
>  > >> Please advise,
>  > >> Thank you kindly,
>  > >> M Just
>  > >>
>  > >>         [[alternative HTML version deleted]]
>  > >>
>  > >> ______________________________________________
>  > >> R-help at r-project.org mailing list
>  > >> 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.
>  > >>
>  > >> Dit bericht en eventuele bijlagen geven enkel de visie van de
>  > schrijver
>  > >> weer
>  > >> en binden het INBO onder geen enkel beding, zolang dit bericht niet
>  > >> bevestigd is
>  > >> door een geldig ondertekend document. The views expressed in  this
>  > message
>  > >> and any annex are purely those of the writer and may not be regarded
>  > as
>  > >> stating
>  > >> an official position of INBO, as long as the message is not confirmed
>  > by a
>  > >> duly
>  > >> signed document.
>  > >>
>  > >
>  > >
>  >
>  >        [[alternative HTML version deleted]]
>  >
>  > ______________________________________________
>  > R-help at r-project.org mailing list
>  > 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.
>  >
>  > Dit bericht en eventuele bijlagen geven enkel de visie van de schrijver
>  > weer
>  > en binden het INBO onder geen enkel beding, zolang dit bericht niet
>  > bevestigd is
>  > door een geldig ondertekend document. The views expressed in  this message
>  > and any annex are purely those of the writer and may not be regarded as
>  > stating
>  > an official position of INBO, as long as the message is not confirmed by a
>  > duly
>  > signed document.
>  >
>
>         [[alternative HTML version deleted]]
>
>  ______________________________________________
>  R-help at r-project.org mailing list
>  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.
>



More information about the R-help mailing list