[R] Strang line while plotting failure curves

Frank E Harrell Jr f.harrell at vanderbilt.edu
Thu Nov 6 22:24:30 CET 2008

Lu, Jiang wrote:
> Thank you very much, Frank. I installed Design package and tried 
> survplot().
> #R code
>  survplot(testfit,time.inc=365.25,xaxt='n',xlim=c(0,1826.25),ylim=c(0,1),conf='none',
>           fun=function(y)1-y,label.curves=list(keys=c('Med','Rev')),
>           abbrev.label=TRUE,n.risk=TRUE)
> # End of R code
> I have achieved my goal with the 'fun' argument you advised. But I have 
> a difficult time to do the following fine tune.
> 1. The X axis scale was labeled as 'Days'. I would like something like 
> 'xscale=365.25' in plot.survfit to put time into Years and label the 
> ticks from 0 to 5, instead of from 0 to 1826.25 by each 365.25 
> increment. I tried xaxt='n' as you can see in the code above. Then I 
> noticed that xaxt='n' only work for plot(survfit), not in survplot(). 
> Any advice how to change the tick label using survplot()?

There are options to do all that, described in the documentation.

> 2. The n.risk was beautifully printed for each specified time point 
> along the x axis. However, since I am plotting the failure rate, the 
> n.risk looks busy with the failure rate curves. Is there a way to move 
> the n.risk to the top of the plot where there are lots of space?

May be best to move it to the bottom margin.  See the help file.

> 3. I also tried label.curves=list(). It is very convenient. The curves 
> are labeled and the legend is created as well. Could I only keep the 
> curve label and get rid of the legend since the legend is not so 
> necessary once the curve is labeled. How do you think?

Should be options for that too.


> I really appreciate any help you give.
> Best regards,
> Jiang Lu
> Statistician
> Department of Epidemiology
> University of Pittsburgh
> On Thu, Nov 6, 2008 at 1:21 PM, Frank E Harrell Jr 
> <f.harrell at vanderbilt.edu <mailto:f.harrell at vanderbilt.edu>> wrote:
>     Lu, Jiang wrote:
>         Dear R helper,
>         I encountered a problem when I tried to plot the cumulative
>         failure rate
>         (i.e. 1 - survival probability). I have used the following code
>         to plot. The
>         scenario is that patients are randomized to different treatment
>         arm (rev in
>         the code), the PCI revascularization was monitored over 5 years.
>         #R code
>          testfit <- survfit(Surv(pcifu,pci)~rev,data=subproc)
>          testfit$surv <- 1 - testfit$surv
>          testfail <- plot(testfit, mark.time=FALSE,col=1:2,
>         main='Failure Rate')
>         #End of R code
>         I arbitarily replaced testfit$surv by computing 1 minus the original
>         survival rate. So far so good. However, when I plot the manipulated
>         "testfit", there is a vertical line plotted at x=0, y=0:1. I checked
>         testfit$time and testfit$surv, nothing weird there. I am very
>         confused where
>         the vertical line at starting point of time 0 came from. How can
>         I get rid
>         of it?
>         Would you pleae help me with this? Thanks a lot!
>         Jiang
>     Also see the survplot.* functions in the Design package and their
>     fun argument, e.g., fun=function(y)1-y
>     Frank
>                [[alternative HTML version deleted]]
>         ______________________________________________
>         R-help at r-project.org <mailto: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
>         <http://www.r-project.org/posting-guide.html>
>         and provide commented, minimal, self-contained, reproducible code.
>     -- 
>     Frank E Harrell Jr   Professor and Chair           School of Medicine
>                         Department of Biostatistics   Vanderbilt University

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

More information about the R-help mailing list