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) thanks david
Look at the spread.labs function in the TeachingDemos package or the spread.labels function in the plotrix package. -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of David martin Sent: Friday, June 24, 2011 8:07 AM To: r-help at stat.math.ethz.ch Subject: [R] text overlap in plot 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) thanks david ______________________________________________ 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.
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