[R] label outliers in geom_boxplot (ggplot2)
Mihalicza Péter
mihalicza.peter at eski.hu
Tue May 27 16:58:40 CEST 2008
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?
Another thing: it seems, that if there is only one outlier, ggplot
doesn't show it, although it adjusts the axis to it, and also plots the
label, when doing geom_text():
>library(ggplot2)
>dat=data.frame(num=rep(1,20), val=c(runif(19),3), name=letters[1:20])
>ggplot(dat, aes(y=val, x=num))+geom_boxplot(outlier.size=4,
outlier.colour="green")
>p
>p+geom_text(label=dat$name)
> sessionInfo()
R version 2.6.2 (2008-02-08)
i386-pc-mingw32
locale:
LC_COLLATE=Hungarian_Hungary.1250;LC_CTYPE=Hungarian_Hungary.1250;LC_MONETARY=Hungarian_Hungary.1250;LC_NUMERIC=C;LC_TIME=Hungarian_Hungary.1250
attached base packages:
[1] splines grid stats graphics grDevices utils datasets
[8] methods base
other attached packages:
[1] ggplot2_0.6 colorspace_0.95 RColorBrewer_1.0-2
MASS_7.2-41
[5] proto_0.3-8 reshape_0.8.0 Hmisc_3.4-3
loaded via a namespace (and not attached):
[1] cluster_1.11.10 lattice_0.17-6 tools_2.6.2
Thank you for your help!
Best wishes,
Peter
--
Peter Mihalicza
economist
National Institute for Strategic Health Research
6-8. Arany János utca, Budapest-1051, Hungary
www.eski.hu
Tel.: +36-1-354-5320
E-mail: mihalicza.peter at eski.hu
--
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