# [R] Median abline how-to ?

William Dunlap wdunlap at tibco.com
Thu Aug 12 17:49:09 CEST 2010

```> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of David martin
> Sent: Thursday, August 12, 2010 7:42 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] Median abline how-to ?
>
> Hi,
> I'm newbie with R and don't really know how to add a median
> line to each
> of the groups that is not all the plot long.
>
> Here is a small working code that i have adapted for my purpose. If
> somebody could tell me how to draw median lines on each group and not
> all plot long.
>
>   ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
>       trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
>       group <- gl(2,10,20, labels=c("Ctl","Trt"))
> weight <- c(ctl, trt)
>
> ctlmed <- median(weight[which(group == "Ctl")])
> trtmed <- median(weight[which(group == "Trt")])
> plot.default(weight ~ group,axes=F)
>   axis(2,col.axis = "blue",las=1,cex.axis=0.7,xpd=TRUE)
>   axis(1,
> labels=levels(group),at=1:length(unique(group)),las=2,cex.axis=0.7)

You can use segments(), along with par("cxy"), which gives
the size of a typical plotting character in user units.  E.g.,
w <- par("cxy")[1] * 1.5 # width of pch times 1.5, half-width of
median line
ix <- seq_len(nlevels(group))
mediansByGroup <- tapply(weight, group, median)
segments(x0=ix-w, x1=ix+w, y0=mediansByGroup, col=ix)

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com

> -----Original Message-----
> #horizontal
> abline(h = ctlmed, col = "blue", lwd = 2) # ?? how to make
> abline shorter ?
> abline(h = trtmed, col = "red", lwd = 2)
> box(bty="c")
>
> ps: At this stage the boxplot is not interesting for me.
> thanks,
> david
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help