R: Plot method for 'survfit' objects

plot.survfit {survival} | R Documentation

## Plot method for `survfit` objects

### 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).

### Usage

    ## S3 method for class 'survfit'
    plot(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", ...)

### 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. This is not treated as 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.
`yscale` | a numeric value 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.
`xscale` | a numeric value used like `yscale` for labels on the x axis. A value of 365.25 will give labels in years instead of the original days.
`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. By default, the plot program obeys tradition by having the plot start at (0,0). If `start.time` argument is used in `survfit`, `firstx` is set to that value.
`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.
`...` | for future methods

### Details

When the `survfit` function creates a multi-state survival curve the resulting object also has class ‘survfitms’. The only difference in the plots is that that it defaults to a curve that goes from lower left to upper right (starting at 0), where survival curves default to starting at 1 and going down. All other options are identical.

### 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.

### See Also

`par`, `survfit`, `lines.survfit`.

### Examples

    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")

[Package survival version 2.37-7 Index]