Nothing
## ----echo=FALSE---------------------------------------------------------------
knitr::opts_chunk$set(fig.width = 7,
fig.height = 3)
## -----------------------------------------------------------------------------
library(forestplot)
library(dplyr)
## ----fig.height=4, fig.width=8, message=FALSE---------------------------------
# Cochrane data from the 'rmeta'-package
base_data <- tibble::tibble(mean = c(0.578, 0.165, 0.246, 0.700, 0.348, 0.139, 1.017),
lower = c(0.372, 0.018, 0.072, 0.333, 0.083, 0.016, 0.365),
upper = c(0.898, 1.517, 0.833, 1.474, 1.455, 1.209, 2.831),
study = c("Auckland", "Block", "Doran", "Gamsu",
"Morrison", "Papageorgiou", "Tauesch"),
deaths_steroid = c("36", "1", "4", "14", "3", "1", "8"),
deaths_placebo = c("60", "5", "11", "20", "7", "7", "10"),
OR = c("0.58", "0.16", "0.25", "0.70", "0.35", "0.14", "1.02"))
base_data |>
forestplot(labeltext = c(study, deaths_steroid, deaths_placebo, OR),
clip = c(0.1, 2.5),
xlog = TRUE) |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue") |>
fp_add_header(study = c("", "Study"),
deaths_steroid = c("Deaths", "(steroid)"),
deaths_placebo = c("Deaths", "(placebo)"),
OR = c("", "OR")) |>
fp_append_row(mean = 0.531,
lower = 0.386,
upper = 0.731,
study = "Summary",
OR = "0.53",
is.summary = TRUE) |>
fp_set_zebra_style("#EFEFEF")
## ----fig.height=4, fig.width=8, message=FALSE---------------------------------
base_data |>
forestplot(labeltext = c(study, deaths_steroid, deaths_placebo, OR),
clip = c(0.1, 2.5),
xlog = TRUE) |>
fp_add_lines() |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue",
align = "lrrr",
hrz_lines = "#999999") |>
fp_add_header(study = c("", "Study"),
deaths_steroid = c("Deaths", "(steroid)") |>
fp_align_center(),
deaths_placebo = c("Deaths", "(placebo)") |>
fp_align_center(),
OR = c("", fp_align_center("OR"))) |>
fp_append_row(mean = 0.531,
lower = 0.386,
upper = 0.731,
study = "Summary",
OR = "0.53",
is.summary = TRUE)
## ----fig.height=4, fig.width=8, message=FALSE---------------------------------
base_data |>
forestplot(labeltext = c(study, deaths_steroid, deaths_placebo, OR),
clip = c(0.1, 2.5),
xlog = TRUE) |>
fp_add_lines(h_3 = gpar(lty = 2),
h_11 = gpar(lwd = 1, columns = 1:4, col = "#000044")) |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue",
align = "lrrr",
hrz_lines = "#999999") |>
fp_add_header(study = c("", "Study"),
deaths_steroid = c("Deaths", "(steroid)") |>
fp_align_center(),
deaths_placebo = c("Deaths", "(placebo)") |>
fp_align_center(),
OR = c("", fp_align_center("OR"))) |>
fp_append_row(mean = 0.531,
lower = 0.386,
upper = 0.731,
study = "Summary",
OR = "0.53",
is.summary = TRUE)
## ----fig.height=4, fig.width=8, message=FALSE---------------------------------
base_data |>
forestplot(labeltext = c(study, deaths_steroid, deaths_placebo, OR),
clip = c(0.1, 2.5),
vertices = TRUE,
xlog = TRUE) |>
fp_add_lines(h_3 = gpar(lty = 2),
h_11 = gpar(lwd = 1, columns = 1:4, col = "#000044")) |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue",
align = "lrrr",
hrz_lines = "#999999") |>
fp_add_header(study = c("", "Study"),
deaths_steroid = c("Deaths", "(steroid)") |>
fp_align_center(),
deaths_placebo = c("Deaths", "(placebo)") |>
fp_align_center(),
OR = c("", fp_align_center("OR"))) |>
fp_append_row(mean = 0.531,
lower = 0.386,
upper = 0.731,
study = "Summary",
OR = "0.53",
is.summary = TRUE)
## -----------------------------------------------------------------------------
base_data |>
forestplot(labeltext = c(study, deaths_steroid, deaths_placebo, OR),
clip = c(0.1, 2.5),
vertices = TRUE,
xlog = TRUE) |>
fp_add_lines(h_3 = gpar(lty = 2),
h_11 = gpar(lwd = 1, columns = 1:4, col = "#000044")) |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue",
hrz_lines = "#999999") |>
fp_add_header(study = c("", "Study"),
deaths_steroid = c("Deaths", "(steroid)"),
deaths_placebo = c("Deaths", "(placebo)"),
OR = c("", "OR")) |>
fp_append_row(mean = 0.531,
lower = 0.386,
upper = 0.731,
study = "Summary",
OR = "0.53",
is.summary = TRUE) |>
fp_decorate_graph(box = gpar(lty = 2, col = "lightgray"),
graph.pos = 4) |>
fp_set_zebra_style("#f9f9f9")
## -----------------------------------------------------------------------------
data(dfHRQoL)
dfHRQoL |>
filter(group == "Sweden") |>
mutate(est = sprintf("%.2f", mean), .after = labeltext) |>
forestplot(labeltext = c(labeltext, est),
xlab = "EQ-5D index") |>
fp_add_header(est = expression(beta)) |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue")
## -----------------------------------------------------------------------------
# You can set directly the font to desired value, the next three lines are just for handling MacOs on CRAN
font <- "mono"
if (grepl("Ubuntu", Sys.info()["version"])) {
font <- "HersheyGothicEnglish"
}
dfHRQoL |>
filter(group == "Sweden") |>
mutate(est = sprintf("%.2f", mean), .after = labeltext) |>
forestplot(labeltext = c(labeltext, est),
xlab = "EQ-5D index") |>
fp_add_header(est = "Est.") |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue",
txt_gp = fpTxtGp(label = gpar(fontfamily = font)))
## -----------------------------------------------------------------------------
dfHRQoL |>
filter(group == "Sweden") |>
mutate(est = sprintf("%.2f", mean), .after = labeltext) |>
forestplot(labeltext = c(labeltext, est),
xlab = "EQ-5D index") |>
fp_add_header(est = "Est.") |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue",
txt_gp = fpTxtGp(label = list(gpar(fontfamily = font),
gpar(fontfamily = "",
col = "#660000")),
ticks = gpar(fontfamily = "", cex = 1),
xlab = gpar(fontfamily = font, cex = 1.5)))
## -----------------------------------------------------------------------------
dfHRQoL |>
filter(group == "Sweden") |>
mutate(est = sprintf("%.2f", mean), .after = labeltext) |>
forestplot(labeltext = c(labeltext, est),
clip = c(-.1, Inf),
xlab = "EQ-5D index") |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue")
## -----------------------------------------------------------------------------
dfHRQoL |>
filter(group == "Sweden") |>
mutate(est = sprintf("%.2f", mean), .after = labeltext) |>
forestplot(labeltext = c(labeltext, est),
boxsize = 0.2,
clip = c(-.1, Inf),
xlab = "EQ-5D index") |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue")
## ----fig.width=10, fig.height=4-----------------------------------------------
fp_sweden <- dfHRQoL |>
filter(group == "Sweden") |>
mutate(est = sprintf("%.2f", mean), .after = labeltext) |>
forestplot(labeltext = c(labeltext, est),
title = "Sweden",
clip = c(-.1, Inf),
xlab = "EQ-5D index",
new_page = FALSE)
fp_denmark <- dfHRQoL |>
filter(group == "Denmark") |>
mutate(est = sprintf("%.2f", mean), .after = labeltext) |>
forestplot(labeltext = c(labeltext, est),
title = "Denmark",
clip = c(-.1, Inf),
xlab = "EQ-5D index",
new_page = FALSE)
library(grid)
grid.newpage()
borderWidth <- unit(4, "pt")
width <- unit(convertX(unit(1, "npc") - borderWidth, unitTo = "npc", valueOnly = TRUE)/2, "npc")
pushViewport(viewport(layout = grid.layout(nrow = 1,
ncol = 3,
widths = unit.c(width,
borderWidth,
width))
)
)
pushViewport(viewport(layout.pos.row = 1,
layout.pos.col = 1))
fp_sweden |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue")
upViewport()
pushViewport(viewport(layout.pos.row = 1,
layout.pos.col = 2))
grid.rect(gp = gpar(fill = "#dddddd", col = "#eeeeee"))
upViewport()
pushViewport(viewport(layout.pos.row = 1,
layout.pos.col = 3))
fp_denmark |>
fp_set_style(box = "royalblue",
line = "darkblue",
summary = "royalblue")
upViewport(2)
## -----------------------------------------------------------------------------
dfHRQoL |>
group_by(group) |>
forestplot(clip = c(-.1, 0.075),
ci.vertices = TRUE,
ci.vertices.height = 0.05,
boxsize = .1,
lineheight = "lines",
xlab = "EQ-5D index") |>
fp_add_lines("steelblue") |>
fp_add_header("Variable") |>
fp_set_style(box = c("blue", "darkred") |> lapply(function(x) gpar(fill = x, col = "#555555")),
default = gpar(vertices = TRUE))
## -----------------------------------------------------------------------------
dfHRQoL |>
group_by(group) |>
forestplot(fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
clip = c(-.125, 0.075),
xlab = "EQ-5D index") |>
fp_set_style(box = c("blue", "darkred") |> lapply(function(x) gpar(fill = x, col = "#555555")),
default = gpar(vertices = TRUE)) |>
fp_set_zebra_style("#F5F9F9")
## -----------------------------------------------------------------------------
dfHRQoL |>
group_by(group) |>
forestplot(fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
clip = c(-.125, 0.075),
lty.ci = c(1, 2),
xlab = "EQ-5D index") |>
fp_set_style(box = c("blue", "darkred") |> lapply(function(x) gpar(fill = x, col = "#555555")),
default = gpar(vertices = TRUE))
## -----------------------------------------------------------------------------
dfHRQoL |>
group_by(group) |>
forestplot(legend = c("Swedes", "Danes"),
fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
clip = c(-.125, 0.075),
xlab = "EQ-5D index") |>
fp_set_style(box = c("blue", "darkred") |> lapply(function(x) gpar(fill = x, col = "#555555")))
## -----------------------------------------------------------------------------
dfHRQoL |>
group_by(group) |>
forestplot(legend = c("Swedes", "Danes"),
legend_args = fpLegend(pos = list(x = .85, y = 0.25),
gp = gpar(col = "#CCCCCC", fill = "#F9F9F9")),
fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
clip = c(-.125, 0.075),
xlab = "EQ-5D index") |>
fp_set_style(box = c("blue", "darkred") |> lapply(function(x) gpar(fill = x, col = "#555555")))
## -----------------------------------------------------------------------------
dfHRQoL |>
group_by(group) |>
forestplot(fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
clip = c(-.125, 0.075),
xticks = c(-.1, -0.05, 0, .05),
xlab = "EQ-5D index") |>
fp_set_style(box = c("blue", "darkred") |> lapply(function(x) gpar(fill = x, col = "#555555")))
## -----------------------------------------------------------------------------
xticks <- seq(from = -.1, to = .05, by = 0.025)
xtlab <- rep(c(TRUE, FALSE), length.out = length(xticks))
attr(xticks, "labels") <- xtlab
dfHRQoL |>
group_by(group) |>
forestplot(fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
clip = c(-.125, 0.075),
xticks = xticks,
xlab = "EQ-5D index") |>
fp_set_style(box = c("blue", "darkred") |> lapply(function(x) gpar(fill = x, col = "#555555")))
## -----------------------------------------------------------------------------
dfHRQoL |>
group_by(group) |>
forestplot(fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
clip = c(-.125, 0.075),
xticks = c(-.1, -0.05, 0, .05),
zero = 0,
xlab = "EQ-5D index") |>
fp_set_style(box = c("blue", "darkred") |> lapply(function(x) gpar(fill = x, col = "#555555"))) |>
fp_decorate_graph(grid = structure(c(-.1, -.05, .05),
gp = gpar(lty = 2, col = "#CCCCFF")))
## -----------------------------------------------------------------------------
dfHRQoL |>
group_by(group) |>
forestplot(fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
clip = c(-.125, 0.075),
xlab = "EQ-5D index") |>
fp_set_style(box = c("blue", "darkred") |> lapply(function(x) gpar(fill = x, col = "#555555"))) |>
fp_decorate_graph(grid = structure(c(-.1, -.05, .05),
gp = gpar(lty = 2, col = "#CCCCFF")))
## ----eval=FALSE, echo=TRUE----------------------------------------------------
# grid_arg <- c(-.1, -.05, .05)
# attr(grid_arg, "gp") <- gpar(lty = 2, col = "#CCCCFF")
#
# identical(grid_arg,
# structure(c(-.1, -.05, .05),
# gp = gpar(lty = 2, col = "#CCCCFF")))
# # Returns TRUE
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.