[R] label outliers in geom_boxplot (ggplot2)
Mihalicza Péter
mihalicza.peter at eski.hu
Fri Jun 6 11:28:50 CEST 2008
hadley wickham írta:
> 2008/5/27 Mihalicza Péter <mihalicza.peter at eski.hu>:
>
>> Dear List and Hadley,
>>
>> I would like to have a boxplot with ggplot2 and have the outlier values
>> labelled with their "name" attribute. So I did
>> > library(ggplot2)
>> > dat=data.frame(num=rep(1,20), val=c(runif(18),3,3.5),
>> name=letters[1:20])
>> > p=ggplot(dat, aes(y=val, x=num))+geom_boxplot(outlier.size=4,
>> outlier.colour="green")
>> > p+geom_text(label=dat$name)
>>
>> But this -of course- labels all the data points. So I searched high and low
>> to find the way to only label the outliers, but I couldn't find any
>> solution. Probably my keywords were inappropriate, but I looked at the
>> ggplot website and the book also. So I did this:
>> > boxout=boxplot(dat$val)$out
>> > outname=as.character(dat$name)
>> > outname[(dat$val %in% boxout)==FALSE]="\n"
>> > p+geom_text(label=outname)
>>
>> This works, but seems like a hack to me. Is there an obvious solution that I
>> am missing?
>>
>
> I don't think so. This type of problem (where you need to
> independently access the statistics generated by ggplot) does come up
> fairly often, but I don't have any particularly good solution for it.
>
It's too obvious, so I am positive that there is a good reason for not
doing this, but still:
why is it not possible, to have an "outlier" output in stat_boxplot that
can be used at geom_text()?
Something like this, with "upper":
> dat=data.frame(num=rep(1,20), val=c(runif(18),3,3.5),
name=letters[1:20])
> ggplot(dat, aes(y=val, x=num))+stat_boxplot(outlier.size=4,
+ outlier.colour="green")+geom_text(aes(y=..upper..), label="This is
upper hinge")
Unfortunately, this does not work and gives the error message:
Error in eval(expr, envir, enclos) : object "upper" not found
Is it because you can only use stat outputs within the stat statements?
Could it be possible to make them available outside the statements too?
> P.S. Sorry for taking so long to respond, I've been at my sister's
> wedding in New Zealand
>
Thanks for the answer and happy marriage to your sister!
Peter
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
More information about the R-help
mailing list