[R] position of number at risk in survplot() graphs

Frank E Harrell Jr f.harrell at vanderbilt.edu
Tue May 30 22:04:47 CEST 2006


Osman Al-Radi wrote:
> Dear R-help
> 
> How can one get survplot() to place the number at risk just below the
> survival curve as opposed to the default which is just above the x-axis?
> I tried the code bellow but the result is not satisfactory as some numbers
> are repeated several times at different y coordinates and the position of
> the n.risk numbers corresponds to the x-axis tick marks not the survival
> curve time of censoring.
> 
> n <- 20
> set.seed(731)
> cens <- 15*runif(n)
> h <- .02*exp(2)
> dt <- -log(runif(n))/h
> label(dt) <- 'Follow-up Time'
> e <- ifelse(dt <= cens,1,0)
> dt <- pmin(dt, cens)
> units(dt) <- "Year"
> S <- Surv(dt,e)
> km<-survfit(S~1)
> survplot(km,n.risk=T,conf='none', y.n.risk=unique(summary(km)$surv))
> 
> Any suggestion on addressing this problem would be apprecited.
> 
> Also, is there a way to add a tick mark to the survival curve at times of
> censoring similar to the mark.time=T argument in plot.survplot()?
> 
> Thanks
> 
> Osman
> 

Osman,

y.n.risk has to be a scalar and gives the y-coordinate of the bottom 
line of number at risk.  I take it that you want the numbers not all at 
the same height.  This will require a customization of survplot or 
fetching information from the km object and using text( ).

Frank
-- 
Frank E Harrell Jr   Professor and Chair           School of Medicine
                      Department of Biostatistics   Vanderbilt University



More information about the R-help mailing list