plot.survfit            package:survival            R Documentation

Plot Method for 'survfit'

Description:

     A plot of survival curves is produced, one curve for each strata.
     The 'log=T' option does extra work to avoid log(0), and to try to
     create a pleasing result.  If there are zeros, they are plotted by
     default at 0.8 times the smallest non-zero value on the curve(s).

     If 'legend.text' is supplied a legend is created.

Usage:

     plot.survfit(x, conf.int=, mark.time=TRUE,
      mark=3, col=1, lty=1, lwd=1, cex=1, log=FALSE, xscale=1, yscale=1, 
      firstx=0, firsty=1, xmax, ymin=0, fun,
      xlab="", ylab="", xaxs="S", bty=NULL,
     legend.text=NULL,legend.pos=0,legend.bty="n",main=NULL,...)

Arguments:

       x: an object of class 'survfit', usually returned by the
          'survfit' function. 

conf.int: determines whether confidence intervals will be plotted.  The
          default is to do so if there is only 1 curve, i.e., no
          strata. 

mark.time: controls the labeling of the curves.  If set to 'FALSE', no
          labeling is done. If 'TRUE', then curves are marked at each
          censoring time which is not also  a death time.  If
          'mark.time' is a numeric vector, then curves are marked at
          the specified time points. 

    mark: vector of mark parameters, which will be used to label the
          curves. The 'lines' help file contains examples of the
          possible marks. The vector is reused cyclically if it is
          shorter than the number of curves. 

     col: a vector of integers specifying colors for each curve. The
          default value is 1. 

     lty: a vector of integers specifying line types for each curve.
          The default value is 1. 

     lwd: a vector of numeric values for line widths. The default value
          is 1. 

     cex: a numeric value specifying the size of the marks. Not a
          vector; all marks have the same size. 

     log: a logical value, if TRUE the y axis wll be on a log scale.
          Alternately, one of the standard character strings "x", "y",
          or "xy" can be given to specific logarithmic horizontal
          and/or vertical axes. 

  xscale: scale the x-axis values before plotting. If time were in
          days, then a value of 365.25 will give labels in years
          instead of the original days. 

  yscale: will be used to multiply the labels on the y axis. A value of
          100, for instance, would be used to give a percent scale.
          Only the labels are changed, not the actual plot coordinates,
          so that adding a curve with "'lines(surv.exp(...{}))'", say, 
          will perform as it did without the 'yscale' argument. 

firstx,firsty: the starting point for the survival curves.  If either
          of these is set to 'NA' the plot will start at the first time
          point of the curve. 

    xmax: the maximum horizontal plot coordinate.  This can be used to
          shrink the range of a plot.  It shortens the curve before
          plotting it, so that unlike using the 'xlim' graphical
          parameter, warning messages about out of bounds points are
          not generated. 

    ymin: lower boundary for y values.  Survival curves are most often
          drawn in the range of 0-1, even if none of the curves
          approach zero. The parameter is ignored if the 'fun' argument
          is present, or if it has been set to 'NA'. 

     fun: an arbitrary function defining a transformation of the
          survival curve. For example 'fun=log' is an alternative way
          to draw a log-survival curve (but with the axis labeled with
          log(S) values), and 'fun=sqrt' would generate a curve on
          square root scale. Four often used transformations can be
          specified with a character argument instead: '"log"' is the
          same as using the 'log=T' option, '"event"' plots cumulative
          events (f(y) = 1-y),  '"cumhaz"' plots the cumulative hazard
          function (f(y) = -log(y)), and '"cloglog"' creates a
          complimentary log-log survival plot (f(y) = log(-log(y))
          along with log scale for the x-axis).  

    xlab: label given to the x-axis. 

    ylab: label given to the y-axis. 

    xaxs: either '"S"' for a survival curve or a standard x axis style
          as listed in 'par'. Survival curves are usually displayed
          with the curve touching the y-axis, but not touching the
          bounding box of the plot on the other 3 sides. Type '"S"'
          accomplishes this by manipulating the plot range and then
          using the '"i"' style internally. 

     bty: see 'par'

legend.pos: position for the legend: a vector of length 2, or 0 to put
          the legend in the lower left, 1 to put it in the upper right.
          These may not work well with transformed curves.

legend.bty: Box type, see 'legend'

legend.text: Text for legend, see 'legend'

    main: Plot title

     ...: other graphical parameters

Value:

     a list with components 'x' and 'y', containing the coordinates of
     the last point on each of the curves (but not the confidence
     limits).   This may be useful for labeling.

BUGS:

     Survival curve objects created from a 'coxph' model does not
     include the censoring times. Therefore, specifying 'mark.time=T'
     does not work. If you want to mark censoring times on the curve(s)
     resulting  from a 'coxph' fit, provide a vector of times as the
     'mark.time' argument  in the call to 'plot.survfit' or
     'lines.survfit'.

See Also:

     'par', 'survfit', 'lines.survfit' 'legend'

Examples:

     data(aml)
     leukemia.surv <- survfit(Surv(time, status) ~ x, data = aml)
     plot(leukemia.surv, lty = 2:3)
     legend(100, .9, c("Maintenance", "No Maintenance"), lty = 2:3)
     title("Kaplan-Meier Curves\nfor AML Maintenance Study")

     lsurv2 <- survfit(Surv(time, status) ~ x, aml, type='fleming')
     plot(lsurv2, lty=2:3, fun="cumhaz",
             xlab="Months", ylab="Cumulative Hazard")

     plot(leukemia.surv,lty=1:2,legend.pos=0,col=c("Red","Blue"),legend.text=c("Maintenance",
     "No Maintenance"))
     if (interactive()){
     cat("Click on the graphics device to place a legend\n")
     plot(leukemia.surv,lty=2:3,legend.pos=locator(1),legend.text=c("Maintenance",
     "No Maintenance"))
     }

