--- title: "Contour Plots" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Contour Plots} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 6 ) ``` ```{r setup, results='hide', message=FALSE, warning=FALSE, echo=FALSE} library(BCEA) library(dplyr) library(reshape2) library(ggplot2) library(purrr) ``` ## Introduction The intention of this vignette is to show how to plot different styles of contour plot using the BCEA package and the `contour()` and `contour2()` functions. #### R code To calculate these in BCEA we use the `bcea()` function. ```{r} data("Vaccine") he <- bcea(eff, cost, ref = 2) ``` The plot defaults to base R plotting. Type of plot can be set explicitly using the `graph` argument. ```{r} contour(he, graph = "base") contour(he, graph = "ggplot2") # ceac.plot(he, graph = "plotly") ``` User-defined contour levels can be provided. The `levels` and `nlevels` arguments specify the quantiles or number of levels. The base R levels arguments are kept for back-compatibility and the `ggplot2` style arguments are used in the associated plot. ```{r} contour(he, levels = c(0.2, 0.8)) contour(he, graph = "ggplot2", contour = list(breaks = c(0.2, 0.8))) ``` Other plotting arguments can be specified such as title, line colour and thickness and type of point. ```{r} contour(he, graph = "ggplot2", title = "my title", point = list(color = "blue", shape = 2, size = 5), contour = list(size = 2)) ``` ```{r} contour(he, graph = "base", title = "my title", point = list(color = "blue", shape = 2, size = 2), contour = list(size = 2)) ``` Alternatively, the `contour2()` function is essentially a wrapper for `ceplane.plot()` with the addition of contour lines. ```{r} contour2(he, graph = "base") contour2(he, graph = "ggplot2") # ceac.plot(he, graph = "plotly") ``` Other plotting arguments can be specified in exactly the same way as above. ```{r} contour2(he, graph = "ggplot2", title = "my title", point = list(color = "blue", shape = 10, size = 5), contour = list(size = 2)) ``` ```{r} contour2(he, graph = "base", title = "my title", point = list(color = "blue", shape = 2, size = 3), contour = list(size = 4)) ``` ## Multiple interventions This situation is when there are more than two interventions to consider. #### R code ```{r} data("Smoking") he <- bcea(eff, cost, ref = 4) # str(he) ``` Because there are multiple groups then the quadrant annotation is omitted. ```{r} contour(he) contour(he, graph = "ggplot2") ``` The `scale` argument determines the smoothness of the contours. ```{r} contour(he, scale = 0.9) contour(he, graph = "ggplot2", scale = 0.9) ##TODO: what is the equivalent ggplot2 argument? ``` The quantiles or number of levels. ```{r} contour(he, nlevels = 10) contour(he, graph = "ggplot2", contour = list(bins = 10)) ``` ```{r} contour(he, levels = c(0.2, 0.8)) contour(he, graph = "ggplot2", contour = list(breaks = c(0.2, 0.8))) ``` ```{r} contour(he, graph = "ggplot2", title = "my title", line = list(color = "red", size = 1), point = list(color = c("plum", "tomato", "springgreen"), shape = 3:5, size = 2), icer = list(color = c("red", "orange", "black"), size = 5), contour = list(size = 2)) ``` ```{r} contour(he, graph = "base", title = "my title", line = list(color = "red", size = 1), point = list(color = c("plum", "tomato", "springgreen"), shape = 3:5, size = 2), icer = list(color = c("red", "orange", "black"), size = 5), contour = list(size = 4)) ``` Again, this applies to the `contour2()` version of contour plot too. ```{r} contour2(he, wtp = 250) contour2(he, wtp = 250, graph = "ggplot2") ``` The styling of the plot for multiple comparisons can specifically change the colour and point type for each comparison. ```{r} contour2(he, wtp = 250, graph = "ggplot2", title = "my title", line = list(color = "red", size = 1), point = list(color = c("plum", "tomato", "springgreen"), shape = 3:5, size = 2), icer = list(color = c("red", "orange", "black"), size = 5), contour = list(size = 2)) ``` ```{r} contour2(he, wtp = 250, graph = "base", title = "my title", line = list(color = "red", size = 1), point = list(color = c("plum", "tomato", "springgreen"), shape = 3:5, size = 2), icer = list(color = c("red", "orange", "black"), size = 5), contour = list(size = 4)) ``` Reposition legend. ```{r} contour(he, pos = FALSE) # bottom right contour(he, pos = c(0, 0)) contour(he, pos = c(0, 1)) contour(he, pos = c(1, 0)) contour(he, pos = c(1, 1)) ```