[R] Faceted bar plot shows wrong counts (ggplot2)
Hadley Wickham
hadley at rice.edu
Wed Apr 11 21:28:17 CEST 2012
And it's now fixed in the dev version.
Hadley
On Tue, Mar 13, 2012 at 11:37 AM, Helios de Rosario
<helios.derosario at ibv.upv.es> wrote:
> Michael,
>
> Thanks for the pointer to the discussion in the ggplot list. It seems
> that the reason of this behaviour of facet_grid() is already known and
> being discussed by the developers of ggplot2.
>
> facet_grid() reduces the original data frame with unique() before
> applying the stats. If the data frame has any other column that
> prevents duplicated rows, counts are correctly computed.
>
> E.g.
>
> diamonds25 <- droplevels(diamonds[1:25,]) # Keep all columns
>
> # Everything else as before:
> base <- ggplot(diamonds25, aes(fill = cut)) +
> geom_bar(position = "dodge") +
> opts(legend.position = "none")
> base + aes(x = cut) +
> facet_grid(. ~ color)
>
>
> Helios
>
>>>> El día 12/03/2012 a las 20:59, "R. Michael Weylandt"
> <michael.weylandt at gmail.com> escribió:
>> You get the "good" behavior with
>>
>> base + aes(x = cut) + facet_wrap(~ color, ncol = 5)
>>
>> so this seems buggy to me.
>>
>> If someone here doesn't step forward with more insight, I'd forward
> it
>> to the ggplot list to see if one of the developers there can give an
>> explanation or possibly make the official call that it's a bug.
>>
>> There was another report of a possible bug in facet_grid() today
> that
>> could be related:
>>
> https://groups.google.com/group/ggplot2/browse_thread/thread/5213ac35da6b36d
>
>> 4
>>
>> Michael
>>
>> On Mon, Mar 12, 2012 at 7:16 AM, Helios de Rosario
>> <helios.derosario at ibv.upv.es> wrote:
>>> I have encountered a problem with faceted bar plots. I have tried
> to
>>> create something like the example explained in the ggplot2 book (see
> pp.
>>> 126-128):
>>>
>>> library(ggplot2)
>>> mpg4 <- subset(mpg, manufacturer %in%
>>> c("audi", "volkswagen", "jeep"))
>>> mpg4$manufacturer <- as.character(mpg4$manufacturer)
>>> mpg4$model <- as.character(mpg4$model)
>>>
>>> base <- ggplot(mpg4, aes(fill = model)) +
>>> geom_bar(position = "dodge") +
>>> opts(legend.position = "none")
>>> base + aes(x = model) +
>>> facet_grid(. ~ manufacturer)
>>>
>>> That example works fine; the bar heights are just the same as the
>>> counts in the table:
>>>
>>> table(mpg4[,1:2])
>>> model
>>> manufacturer a4 a4 quattro a6 quattro grand cherokee 4wd gti jetta
> new
>>> beetle
>>> audi 7 8 3 0 0 0
>>> 0
>>> jeep 0 0 0 8 0 0
>>> 0
>>> volkswagen 0 0 0 0 5 9
>>> 6
>>> model
>>> manufacturer passat
>>> audi 0
>>> jeep 0
>>>
>>> But in other cases this does not occur. For instance, take a small
>>> subset of data(diamonds):
>>>
>>> diamonds25 <- droplevels(diamonds[1:25,2:3])
>>> table(diamonds25)
>>> color
>>> cut E F H I J
>>> Fair 1 0 0 0 0
>>> Good 1 0 0 1 4
>>> Very Good 1 0 3 1 4
>>> Premium 3 1 0 1 0
>>> Ideal 1 0 0 1 2
>>>
>>> And change the variables mapped in the previous plot:
>>>
>>> base <- ggplot(diamonds25, aes(fill = cut)) +
>>> geom_bar(position = "dodge") +
>>> opts(legend.position = "none")
>>> base + aes(x = cut) +
>>> facet_grid(. ~ color)
>>>
>>> I see all bars with height = 1.
>>> I have ovserved this problem (wrong bar heights, but not always =
> 1),
>>> in other cases when all counts are very small or zero.
>>> What's wrong here?
>>>
>>> Regards,
>>> Helios
>>>
>>> sessionInfo()
>>> R version 2.14.2 (2012-02-29)
>>> Platform: i386-pc-mingw32/i386 (32-bit)
>>>
>>> locale:
>>> [1] LC_COLLATE=Spanish_Spain.1252 LC_CTYPE=Spanish_Spain.1252
>>> [3] LC_MONETARY=Spanish_Spain.1252 LC_NUMERIC=C
>>> [5] LC_TIME=Spanish_Spain.1252
>>>
>>> attached base packages:
>>> [1] stats graphics grDevices utils datasets methods
> base
>>>
>>> other attached packages:
>>> [1] ggplot2_0.9.0
>>>
>>> loaded via a namespace (and not attached):
>>> [1] colorspace_1.1-1 dichromat_1.2-4 digest_0.5.1
>>> grid_2.14.2
>>> [5] MASS_7.3-17 memoise_0.1 munsell_0.3
>>> plyr_1.7.1
>>> [9] proto_0.3-9.2 RColorBrewer_1.0-5 reshape2_1.2.1
>>> scales_0.2.0
>>> [13] stringr_0.6
>>>
>>>
>>>
>>> INSTITUTO DE BIOMECÁNICA DE VALENCIA
>>> Universidad Politécnica de Valencia ● Edificio 9C
>>> Camino de Vera s/n ● 46022 VALENCIA (ESPAÑA)
>>> Tel. +34 96 387 91 60 ● Fax +34 96 387 91 69
>>> www.ibv.org
>>>
>>> Antes de imprimir este e-mail piense bien si es necesario hacerlo.
>>> En cumplimiento de la Ley Orgánica 15/1999 reguladora de la
> Protección
>>> de Datos de Carácter Personal, le informamos de que el presente
> mensaje
>>> contiene información confidencial, siendo para uso exclusivo del
>>> destinatario arriba indicado. En caso de no ser usted el
> destinatario
>>> del mismo le informamos que su recepción no le autoriza a su
> divulgación
>>> o reproducción por cualquier medio, debiendo destruirlo de
> inmediato,
>>> rogándole lo notifique al remitente.
>>>
>>> ______________________________________________
>>> 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.
>
> INSTITUTO DE BIOMECÁNICA DE VALENCIA
> Universidad Politécnica de Valencia • Edificio 9C
> Camino de Vera s/n • 46022 VALENCIA (ESPAÑA)
> Tel. +34 96 387 91 60 • Fax +34 96 387 91 69
> www.ibv.org
>
> Antes de imprimir este e-mail piense bien si es necesario hacerlo.
> En cumplimiento de la Ley Orgánica 15/1999 reguladora de la Protección
> de Datos de Carácter Personal, le informamos de que el presente mensaje
> contiene información confidencial, siendo para uso exclusivo del
> destinatario arriba indicado. En caso de no ser usted el destinatario
> del mismo le informamos que su recepción no le autoriza a su divulgación
> o reproducción por cualquier medio, debiendo destruirlo de inmediato,
> rogándole lo notifique al remitente.
>
> ______________________________________________
> 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