Never let it be said there's only one way to do a thing: require(ggplot2) require(dplyr)
#create a sample dataset dat <- data.frame(y1=sample(c(1:10,NA),20,replace=TRUE), y2=sample(c(1:10,NA),20,replace=TRUE), y3=sample(c(1:10,NA),20,replace=TRUE)) # convert from wide to long dat <- melt(dat) # add the counts as a label dat <- merge(dat, group_by(dat,variable) %>% summarise(lab=paste0('n=',length(na.omit(value))))) # do the plot ggplot(dat,aes(x=variable,y=value)) + geom_violin() + geom_text(aes(y=max(value,na.rm=TRUE)/2,label=lab)) # apologies to David Winsemius for directing this answer to him, I'll work out how to use email one day. On Sat, Apr 30, 2016 at 12:58 PM, Mike Smith <m...@hsm.org.uk> wrote: > Hi > > First post and a relative R newbie.... > > I am using the vioplot library to produce some violin plots. I have an > input CSV with columns off irregular length that contain NAs. I want to > strip the NAs out and produce a multiple violin plot automatically labelled > using the headers. At the moment I do this > > Code: > ds1 = read.csv("http://www.lecturematerials.co.uk/data/spelling.csv") > library(vioplot) > y6<-na.omit(ds1$y6) > y5<-na.omit(ds1$y5) > y4<-na.omit(ds1$y4) > y3<-na.omit(ds1$y3) > y2<-na.omit(ds1$y2) > y1<-na.omit(ds1$y1) > vioplot(y6, y5, y4,y3,y2,y1,horizontal=TRUE, names=c("Y6", > "Y5","Y4","Y3","Y2","Y1"), col = "lightblue") > > > Two queries: > > 1. Is there a more elegant way of automatically stripping the NAs, passing > the columns to the function along with the header names?? > > 2. Can I easily add the sample size to each violin plotted?? > > thanks > > mike > > > > --- > Mike Smith > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.