[R] ggplot2, geom_hline and facet_grid

Hadley Wickham hadley at rice.edu
Thu Jan 20 22:27:36 CET 2011


Ok, that's a known bug:
https://github.com/hadley/ggplot2/issues/labels/facet#issue/96

Thanks for the reproducible example though!

Hadley

On Thu, Jan 20, 2011 at 3:46 AM, Sandy Small <sandy.small at nhs.net> wrote:
>
>   Thank you.
>   That seems to work - also on my much larger data set.
>   I'm not sure I understand why it has to be defined as a factor, but if it
>   works...
>   Sandy
>   Dennis Murphy wrote:
>
>     Hi Sandy:
>     I can reproduce your problem given the data provided. When I change
>     ecd_rhythm from character to factor, it works as you intended.
>     > str(lvefeg)
>     List of 4     ### Interesting...
>      $ cvd_basestudy: chr [1:10] "CBP05J02" "CBP05J02" "CBP05J02" "CBP05J02"
>     ...
>      $ ecd_rhythm   : chr [1:10] "AF" "AF" "AF" "AF" ...
>      $ fixed_time   : num [1:10] 30.9 33.2 32.6 32.1 30.9 ...
>      $ variable_time: num [1:10] 29.4 32 30.3 33.7 28.3 ...
>      - attr(*, "row.names")= int [1:10] 1 2 3 4 5 6 7 9 10 11
>     > class(lvefeg)
>     [1] "cast_df"    "data.frame"
>     lvefeg$ecd_rhythm <- factor(lvefeg$ecd_rhythm)
>     p <- qplot((variable_time + fixed_time) /2 , variable_time - fixed_time,
>     data = lvefeg, geom='point')
>     p
>     p + facet_grid(ecd_rhythm ~ .) + geom_hline(yintercept=0)
>     Does that work on your end?  (And thank you for the reproducible example.
>     Using dput() allows us to see what you see, which is very helpful.)
>     HTH,
>     Dennis
>
>   On Wed, Jan 19, 2011 at 1:30 PM, Small Sandy (NHS Greater Glasgow & Clyde)
>   <[1]sandy.small at nhs.net> wrote:
>
>     Hi
>     Still  having problems in that when I use geom_hline and facet_grid
>     together I get two extra empty panels
>     A reproducible example can be found at:
>     [2]https://gist.github.com/786894
>     Sandy Small
>     ________________________________________
>     From: [3]h.wickham at gmail.com [[4]h.wickham at gmail.com] On Behalf Of Hadley
>     Wickham [[5]hadley at rice.edu]
>     Sent: 19 January 2011 15:11
>     To: Small Sandy (NHS Greater Glasgow & Clyde)
>     Cc: [6]r-help at r-project.org
>
>   Subject: Re: [R] ggplot2, geom_hline and facet_grid
>
>   Hi Sandy,
>   It's difficult to know what's going wrong without a small reproducible
>   example ([7]https://github.com/hadley/devtools/wiki/Reproducibility) -
>   could you please provide one?  You might also have better luck with an
>   email directly to the ggplot2 mailing list.
>   Hadley
>   On Wed, Jan 19, 2011 at 2:57 AM, Sandy Small <[8]sandy.small at nhs.net> wrote:
>   > Having upgraded to R version 2.12.1 I still have the same problem:
>   >
>   > The combination of facet_grid and geom_hline produce (for me) 4 panels
>   > of which two are empty of any data or lines (labelled "1" and "2").
>   > Removing either the facet_grid or the geom_hline  gives me the result I
>   > would then expect.
>   >
>   > I have tried forcing the rhythm to be a factor
>   > Anyone have any ideas?
>   >
>   > Sandy
>   >
>   > Dennis Murphy wrote:
>   >
>   >   Hi:
>   >
>   >   The attached plot comes from the following code:
>   >
>   >   g <- ggplot(data =f, aes(x = (variable_time + fixed_time)/2, y
>   >   variable_time - fixed_time))
>   >   g + geom_point() + geom_hline(yintercept =) + facet_grid(ecd_rhythm ~ .)
>   >
>   >   Is this what you were expecting?
>   >
>   >    > sessionInfo()
>   >   R version 2.12.1 Patched (2010-12-18 r53869)
>   >   Platform: x86_64-pc-mingw32/x64 (64-bit)
>   >
>   >   locale:
>   >   [1] LC_COLLATE=glish_United States.1252
>   >   [2] LC_CTYPE=glish_United States.1252
>   >   [3] LC_MONETARY=glish_United States.1252
>   >   [4] LC_NUMERIC=nbsp;
>   >   [5] LC_TIME=glish_United States.1252
>   >
>   >   attached base packages:
>   >   [1] splines   stats     graphics  grDevices utils     datasets
>   >   grid
>   >   [8] methods   base
>   >
>   >   other attached packages:
>   >    [1] data.table_1.5.1 doBy_4.2.2       R2HTML_2.2       contrast_0.13
>   >    [5] Design_2.3-0     Hmisc_3.8-3      survival_2.36-2  sos_1.3-0
>   >    [9] brew_1.0-4       lattice_0.19-17  ggplot2_0.8.9    proto_0.3-8
>   >   [13] reshape_0.8.3    plyr_1.4
>   >
>   >   loaded via a namespace (and not attached):
>   >   [1] cluster_1.13.2     digest_0.4.2       Matrix_0.999375-46
>   >   reshape2_1.1
>   >   [5] stringr_0.4        tools_2.12.1
>   >
>   >   HTH,
>   >   Dennis
>   >
>   >   On Tue, Jan 18, 2011 at 1:46 AM, Small Sandy (NHS Greater Glasgow &
>   >   Clyde) <[9]sandy.small at nhs.net <[10]ailto:sandy.small at nhs.net%22>>
>   wrote:
>   >
>   >       Hi
>   >
>   >       I have a long data set on which I want to do Bland-Altman style
>   >       plots for each rhythm type
>   >       Using ggplot2, when I use geom_hline with facet_grid I get an
>   >       extra set of empty panels.
>   >       I can't get it to do it with the "Diamonds" data supplied with
>   >       the package so here is a (much abbreviated) example:
>   >
>   >        > lvexs
>   >         cvd_basestudy ecd_rhythm fixed_time variable_time
>   >       1       CBP05J02         AF    30.9000       29.4225
>   >       2       CBP05J02         AF    33.1700       32.0350
>   >       3       CBP05J02         AF    32.5700       30.2775
>   >       4       CBP05J02         AF    32.0550       33.7275
>   >       5       CBP05J02      SINUS    30.9175       28.3475
>   >       6       CBP05J02      SINUS    30.5725       29.7450
>   >       7       CBP05J02      SINUS    33.0000       31.1550
>   >       9       CBP05J02      SINUS    31.8350       30.7000
>   >       10      CBP05J02      SINUS    34.0450       33.4800
>   >       11      CBP05J02      SINUS    31.3975       29.8150
>   >        >  qplot((variable_time + fixed_time)/2, variable_time -
>   >       fixed_time, data=exs) + facet_grid(ecd_rhythm ~ .) +
>   >       geom_hline(yintercept=0)
>   >
>   >       If I take out the geom_hline I get the plots I would expect.
>   >
>   >       It doesn't seem to make any difference if I get the mean and
>   >       difference separately.
>   >
>   >       Can anyone explain this and tell me how to avoid it (and why
>   >       does it work with the Diamonds data set?
>   >
>   >       Any help much appreciated - thanks.
>   >
>   >       Sandy
>   >
>   >       Sandy Small
>   >       Clinical Physicist
>   >       NHS Forth Valley
>   >       and
>   >       NHS Greater Glasgow and Clyde
>   >
>   >
>   >
>   >
>   ****************************************************************************
>   ****************************************
>   >
>   > This message may contain confidential information. If yo...{{dropped:21}}
>   >
>   > ______________________________________________
>   > [11]R-help at r-project.org mailing list
>   > [12]https://stat.ethz.ch/mailman/listinfo/r-help
>   > PLEASE do read the posting guide
>   [13]http://www.R-project.org/posting-guide.html
>   > and provide commented, minimal, self-contained, reproducible code.
>   >
>   --
>   Assistant Professor / Dobelman Family Junior Chair
>   Department of Statistics / Rice University
>   [14]http://had.co.nz/
>   ****************************************************************************
>   ****************************************
>
>   This  message may contain confidential information. If you are not the
>   intended recipient please inform the
>   sender that you have received the message in error before deleting it.
>   Please do not disclose, copy or distribute information in this e-mail or
>   take any action in reliance on its contents:
>   to do so is strictly prohibited and may be unlawful.
>   Thank you for your co-operation.
>   NHSmail is the secure email and directory service available for all NHS
>   staff in England and Scotland
>   NHSmail  is  approved  for exchanging patient data and other sensitive
>   information with NHSmail and GSi recipients
>   NHSmail provides an email address for your career in the NHS and can be
>   accessed anywhere
>   For  more  information  and  to  find  out  how  you can switch, visit
>   [15]www.connectingforhealth.nhs.uk/nhsmail
>
>   ______________________________________________
>   [16]R-help at r-project.org mailing list
>   [17]https://stat.ethz.ch/mailman/listinfo/r-help
>   PLEASE do read the posting guide
>   [18]http://www.R-project.org/posting-guide.html
>   and provide commented, minimal, self-contained, reproducible code.
>
> --
>
> Sandy Small
> Clinical Physicist
> NHS Greater Glasgow and Clyde
> and
> NHS Forth Valley
>
> Phone (Glasgow): 01412114592
> Phone (Forth Valley): 01324567002
> E-mail: [19]Sandy.Small at NHS.net
>
>   ****************************************************************************
>   ****************************************
>   This  message may contain confidential information. If you are not the
>   intended recipient please inform the
>   sender that you have received the message in error before deleting it.
>   Please do not disclose, copy or distribute information in this e-mail or
>   take any action in reliance on its contents:
>   to do so is strictly prohibited and may be unlawful.
>   Thank you for your co-operation.
>   NHSmail is the secure email and directory service available for all NHS
>   staff in England and Scotland
>   NHSmail  is  approved  for exchanging patient data and other sensitive
>   information with NHSmail and GSi recipients
>   NHSmail provides an email address for your career in the NHS and can be
>   accessed anywhere
>   For  more  information  and  to  find  out  how  you can switch, visit
>   www.connectingforhealth.nhs.uk/nhsmail
>   ****************************************************************************
>   ****************************************
>
> References
>
>   1. mailto:sandy.small at nhs.net
>   2. https://gist.github.com/786894
>   3. mailto:h.wickham at gmail.com
>   4. mailto:h.wickham at gmail.com
>   5. mailto:hadley at rice.edu
>   6. mailto:r-help at r-project.org
>   7. https://github.com/hadley/devtools/wiki/Reproducibility
>   8. mailto:sandy.small at nhs.net
>   9. mailto:sandy.small at nhs.net
>  10. mailto:ailto%3Asandy.small at nhs.net
>  11. mailto:R-help at r-project.org
>  12. https://stat.ethz.ch/mailman/listinfo/r-help
>  13. http://www.R-project.org/posting-guide.html
>  14. http://had.co.nz/
>  15. http://www.connectingforhealth.nhs.uk/nhsmail
>  16. mailto:R-help at r-project.org
>  17. https://stat.ethz.ch/mailman/listinfo/r-help
>  18. http://www.R-project.org/posting-guide.html
>  19. mailto:Sandy.Small at NHS.net
> ______________________________________________
> 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.
>



-- 
Assistant Professor / Dobelman Family Junior Chair
Department of Statistics / Rice University
http://had.co.nz/



More information about the R-help mailing list