[R] text overlap in plot

David Winsemius dwinsemius at comcast.net
Fri Jun 24 17:00:06 CEST 2011


On Jun 24, 2011, at 10:07 AM, David martin wrote:

> Hey,
> Here is a snippet that generated a boxplot and separates  points so  
> that they do not overlap. I have a problem to avoir text  
> overlapping. Any help would be helpful.
>
> >
> attach(InsectSprays)
> boxplot(count ~ spray, data = InsectSprays, outpch = NA)
> stripchart(count ~ spray, data = InsectSprays,
>           vertical = TRUE, method = "jitter",
>           pch = 21, col = "maroon", bg = "bisque",
>           add = TRUE)
>
> text(count ~ spray , row.names(InsectSprays), pos=4,cex=0.6)
> detach(InsectSprays)

Throws an error on my machine. I do not think text has a formula method.

This gets part of the way there using the spreadout function in  
plotrix, but it apparently needs to be set up so that it only gets  
applied within each category:

require(plotrix)
with(InsectSprays,  text(spray, spreadout(count,  
0.3),labels=rownames(InsectSprays), pos=4, cex=0.5) )

So, since InsectSprays is sorted by 'spray', and spreadout preserves  
the order of its arguments, using tapply should not mess up the order:

with(InsectSprays,  text(spray,
         unlist( tapply(InsectSprays$count, InsectSprays$spray,  
spreadout, mindist=0.2) ) ,
         labels=rownames(InsectSprays), pos=4, cex=0.5) )

Seems pretty close.
-- 

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list