Learn R Programming

survMisc (version 0.5.3)

autoplotTen: Generate a ggplot for a survfit or ten object

Description

Generate a ggplot for a survfit or ten object

Usage

autoplot(object, ...)
"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)
"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)
"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.

See Also

?ggplot2::ggplot_build

Examples

Run this code
## 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)

Run the code above in your browser using DataLab