R: Generate a 'ggplot' for a 'survfit' or 'ten' object

autoplotTen {survMisc} | R Documentation

## Generate a `ggplot` for a `survfit` or `ten` object

### Description

Generate a `ggplot` for a `survfit` or `ten` object

### Usage

    autoplot(object, ...)

    ## S3 method for class 'ten'
    autoplot(object, ..., title = "Marks show times with censoring",
      type = c("single", "CI", "fill"), alpha = 0.05, ciLine = 10,
      censShape = 3, palette = c("Dark2", "Set2", "Accent", "Paired", "Pastel1",
      "Pastel2", "Set1", "Set3"), jitter = c("none", "noEvents", "all"),
      tabTitle = "Number at risk by time", xLab = "Time",
      timeTicks = c("major", "minor", "days", "months", "custom"), times = NULL,
      yLab = "Survival", yScale = c("perc", "frac"), legend = TRUE,
      legTitle = "Group", legLabs = NULL, legOrd = NULL, titleSize = 15,
      axisTitleSize = 15, axisLabSize = 10, survLineSize = 0.5,
      censSize = 5, legTitleSize = 10, legLabSize = 10, fillLineSize = 0.05,
      tabTitleSize = 15, tabLabSize = 5, nRiskSize = 5)

    ## S3 method for class 'stratTen'
    autoplot(object, ..., title = NULL, type = c("single",
      "CI", "fill"), alpha = 0.05, ciLine = 10, censShape = 3,
      palette = c("Dark2", "Set2", "Accent", "Paired", "Pastel1", "Pastel2",
      "Set1", "Set3"), jitter = c("none", "noEvents", "all"),
      tabTitle = "Number at risk by time", xLab = "Time",
      timeTicks = c("major", "minor", "days", "months", "custom"), times = NULL,
      yLab = "Survival", yScale = c("perc", "frac"), legend = TRUE,
      legTitle = "Group", legLabs = NULL, legOrd = NULL, titleSize = 15,
      axisTitleSize = 15, axisLabSize = 10, survLineSize = 0.5,
      censSize = 5, legTitleSize = 10, legLabSize = 10, fillLineSize = 0.05,
      tabTitleSize = 15, tabLabSize = 5, nRiskSize = 5)

    ## S3 method for class 'survfit'
    autoplot(object, ...,
      title = "Marks show times with censoring", type = c("single", "CI",
      "fill"), alpha = 0.05, ciLine = 10, censShape = 3,
      palette = c("Dark2", "Set2", "Accent", "Paired", "Pastel1", "Pastel2",
      "Set1", "Set3"), jitter = c("none", "noEvents", "all"),
      tabTitle = "Number at risk by time", xLab = "Time",
      timeTicks = c("major", "minor", "weeks", "months", "custom"),
      times = NULL, yLab = "Survival", yScale = c("perc", "frac"),
      legend = TRUE, legLabs = NULL, legOrd = NULL, legTitle = "Group",
      titleSize = 15, axisTitleSize = 15, axisLabSize = 10,
      survLineSize = 0.5, censSize = 5, legTitleSize = 10, legLabSize = 10,
      fillLineSize = 0.05, tabTitleSize = 15, tabLabSize = 5, nRiskSize = 5,
      pVal = FALSE, sigP = 1, pX = 0.1, pY = 0.1)

### Arguments

`object` | An object of class `survfit`, `ten` or `stratTen`.
`...` | Additional arguments (not implemented).
`title` | Title for survival plot.
`type` | `type="single"` (the default) plots single lines. `type="CI"` Adds lines indicating confidence intervals (taken from `upper` and `lower` values of `survfit` object). Higher values of `alpha` (opacity) are recommended for this, e.g. `alpha=0.8`. `type="fill"` Adds filled rectangles from the survival lines to the confidence intervals above.
`alpha` | Opacity of lines indicating confidence intervals or filled rectangles. Should be in range 0-1. Lower = more transparent. Larger values e.g. `alpha=0.7` are recommended for confidence intervals.
`ciLine` | Confidence interval line type. See 'line type specification' in ?graphics::par
`censShape` | Shape of marks to indicate censored onservations. Default is `3` which gives vertical ticks. Use `censShape=10` for circular marks. See ?graphics::points
`palette` | Options are taken from color_brewer. `palette="Dark2"` (the default) is recommended for `single` or `CI` plots. `palette="Set2"` is recommended for `type="fill"` plots.
`jitter` | By default, `jitter="none"`. If `jitter="noEvents"`, adds some random, positive noise to survival lines with no events (i.e. all observations censored). This will bring them just above 1 on the y-axis, making them easier to see separately. If `jitter="all"` add some vertical and horizontal noise to all survival lines. This can prevent overlapping of lines for censoring.
`tabTitle` | Table title. –Axis arguments:
`xLab` | Label for x axis on survival plot.
`timeTicks` | Numbers to mark on the x axis of the survival plot and the table. `"major"` (the default) only the major x-axis (time) marks from the survival plot are are labelled on the plot and table. `"minor"` minor axis marks are labelled instead. `"days"` scale is 0, 7, 14, ..., t_{max} `"months"` scale is 0, 12,, 24, ..., t_{max} `"custom"` scale is given by `times` below
`times` | Vector of custom times to use for x axis.
`yLab` | Label for y axis on survival plot.
`yScale` | Display for point on y axis: `"perc"` Displays as percentages. `"frac"` Displays as fractions e.g. 0, 0.1, 0.2, ..., 1.0. –Legend arguments:
`legend` | If `legend=FALSE`, no legends will be produced for the plot or table.
`legTitle` | Legend title.
`legLabs` | Legend labels. These can be used to replace the names of the covariate groups ('strata' in the case of a `survfit` object). Should be given in the same order as those strata.
`legOrd` | Legend order. –Size arguments: Size arguments are passed to `ggplot2::element_text(size=)`.
`titleSize` | Title size for survival plot.
`axisTitleSize` | Title size for axes.
`axisLabSize` | Title size for labels on axes.
`survLineSize` | Survival line size.
`legTitleSize` | Title size for legend.
`legLabSize` | Legend labels width and height.
`censSize` | Size of marks to indicate censored onservations.
`fillLineSize` | Line size surrouding filled boxes.
`tabTitleSize` | Table title text size.
`tabLabSize` | Table legend text size.
`nRiskSize` | Number at risk - text size. –Arguments for autoplot.survfit only:
`pVal` | If `pVal=TRUE`, adds p value from log-rank test to plot
`sigP` | No. of significant digits to display in p value. Typically 1 to 3.
`pX` | Location of p value on x axis. Should be in the range of 0 - 1, where value is to be placed relative to the maximum observed time. E.g. `pX = 0.5` will place it half-way along x-axis
`pY` | Location of p value on y axis. Should be in the range of 0 - 1, as above.

### Note

`autoplot.survfit` may be deprecated after packageVersion 0.6. Please try to use `autoplot.ten` instead.

### Author(s)

Chris Dardis. `autoplot.survfit` based on existing work by R. Saccilotto, Abhijit Dasgupta, Gil Tomas and Mark Cowley.

### See Also

?ggplot2::ggplot_build

### Examples

    ## examples are slow to run; see vignette for output from these
    ## Not run:
    ### autoplot.ten
    data("kidney", package="KMsurv")
    t1 <- ten(survfit(Surv(time, delta) ~ type, data=kidney))
    autoplot(t1)
    autoplot(t1, type="fill", survLineSize=2, jitter="all")
    autoplot(t1, timeTicks="months",
     type="CI", jitter="all",
     legLabs=c("surgical", "percutaneous"),
     title="Time to infection following catheter placement \n
       by type of catheter, for dialysis patients",
     titleSize=10, censSize=2)$plot
    t2 <- ten(survfit(Surv(time=time, event=delta) ~ 1, data=kidney))
    autoplot(t2, legLabs="")$plot
    autoplot(t2, legend=FALSE)
    data("rectum.dat", package="km.ci")
    t3 <- ten(survfit(Surv(time, status) ~ 1, data=rectum.dat))
    ## change confidence intervals to log Equal-Precision confidence bands
    ci(t3, how="nair", tL=1, tU=40)
    autoplot(t3, type="fill", legend=FALSE)$plot
    ## manually changing the output
    t4 <- ten(survfit(Surv(time, delta) ~ type, data=kidney))
    (a4 <- autoplot(t4, type="CI", alpha=0.8, survLineSize=2)$plot)
    ## change default colors
    a4 + list(ggplot2::scale_color_manual(values=c("red", "blue")),
              ggplot2::scale_fill_manual(values=c("red", "blue")))
    ## change limits of y-axis
    suppressMessages(a4 + ggplot2::scale_y_continuous(limits=c(0, 1)))

    ## End(Not run)
    ## Not run:
    data("pbc", package="survival")
    t1 <- ten(Surv(time, status==2) ~ trt + strata(edema), data=pbc, abbNames=FALSE)
    autoplot(t1)

    ## End(Not run)
    ### autoplot.survfit
    ## Not run:
    data(kidney, package="KMsurv")
    s1 <- survfit(Surv(time, delta) ~ type, data=kidney)
    autoplot(s1, type="fill", survLineSize=2)
    autoplot(s1, type="CI", pVal=TRUE, pX=0.3,
     legLabs=c("surgical", "percutaneous"),
     title="Time to infection following catheter placement \n
       by type of catheter, for dialysis patients")$plot
    s1 <- survfit(Surv(time=time, event=delta) ~ 1, data=kidney)
    autoplot(s1, legLabs="")$plot
    autoplot(s1, legend=FALSE)$plot
    data(rectum.dat, package="km.ci")
    s1 <- survfit(Surv(time, status) ~ 1, data=rectum.dat)
    ## change confidence intervals to log Equal-Precision confidence bands
    if (require("km.ci")) {
     km.ci::km.ci(s1, method="logep")
     autoplot(s1, type="fill", legend=FALSE)$plot
    }
    ## manually changing the output
    s1 <- survfit(Surv(time, delta) ~ type, data=kidney)
    g1 <- autoplot(s1, type="CI", alpha=0.8, survLineSize=2)$plot
    ## change default colors
    g1 + ggplot2::scale_colour_manual(values=c("red", "blue")) +
        ggplot2::scale_fill_manual(values=c("red", "blue"))
    ## change limits of y-axis
    g1 + ggplot2::scale_y_continuous(limits=c(0, 1))

    ## End(Not run)

[Package survMisc version 0.5.4 Index]