[R] ggplot2: behaviour with empty datasets

Hadley Wickham hadley at rice.edu
Fri Dec 23 15:10:05 CET 2011


See https://github.com/hadley/ggplot2/issues/31 - I totally agree that
it's annoying.
Hadley

PS.  You are more likely to get helpful responses about ggplot2 on the
ggplot mailing list.

On Fri, Dec 23, 2011 at 7:08 AM, Casper Ti. Vector
<caspervector at gmail.com> wrote:
> For example, prepare like this
>> df.0 <- data.frame(x = 0, y = 0, note = "1")
>> df.1 <- subset(df.0, note == "1")
>> df.2 <- subset(df.0, note == "2")
>
> Then a call to
>> ggplot() + aes(x = x, y = y) +
>>   geom_point(data = df.1) + geom_point(data = df.2)
> produces the error
>> Error in eval(expr, envir, enclos) : object 'x' not found
>
> And a call to
>> ggplot(df.1, aes(x = x, y = y, shape = 4)) +
>>   geom_point() + geom_point(aes(shape = 1), df.2)
> plots both a cross (shape = 4) and circle (shape = 1) on position
> (0, 0). However, as expected, only a cross should be plotted because
> `dt.2' is empty.
>
> So with the current behaviour, if someone writes a script to plot
> datasets automatically and distinguish between subsets, he will need
> to write different code path for empty and non-empty data subsets.
> I think ggplot2 can just choose to "plot nothing" for empty data
> subsets, and only produce error when the dataset (union of a subsets) to
> plot is completely empty. This can make scripting easier based on
> ggplot2.
>
> --
>    Using GPG/PGP? Please get my current public key (ID: 0xAEF6A134,
> valid from 2010 to 2013) from a key server.
>
>
> ______________________________________________
> 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