Maraca Plots - Themes and Styling

Monika Huhn

2024-03-18

In order to give the user more options in styling their plot, we have added a theme argument to the plotting functions. This vignette gives an overview over the different options.

Let us first read in some data and prepare for plotting:

library(maraca)

data(hce_scenario_a)

maraca_dat <- maraca(
  data = hce_scenario_a,
  step_outcomes = c("Outcome I", "Outcome II", "Outcome III", "Outcome IV"),
  last_outcome = "Continuous outcome",
  fixed_followup_days = 3 * 365,
  column_names = c(outcome = "GROUP", arm = "TRTP", value = "AVAL0"),
  arm_levels = c(active = "Active", control = "Control"),
  compute_win_odds = TRUE
)

Default themes

By default, the plotting functions are using a theme called “maraca”. It is implicitly called so you do not have to specify the argument theme = "maraca".

plot(maraca_dat)

The default maraca theme adds an x- and y-axis label and angels the x-axis text for better readability. It also uses the theme “bw” of the ggplot2 package. The plot colors are not styled in the default maraca theme. We include 2 different color themes by default for the users convenience, theme = "color1" and theme = "color2".

plot(maraca_dat, theme = "color1")

plot(maraca_dat, theme = "color2")

We kept the previous default styling of the maraca package as its own theme, theme = "maraca_old"

plot(maraca_dat, theme = "maraca_old")

If you want to completely style your code by yourself, remove any of the extra styling with theme = "none".

plot(maraca_dat, theme = "none")

Extending themes

The maraca plot is an ggplot2 object that can be styled by adding extra styling layers, such as any ggplot2 plot.

For example, using the theme = "none" styling, we can add manually the angle of the x-axis labels, remove axis texts and style with differnt colors.

library(ggplot2)

p <- plot(maraca_dat, theme = "none")

p <- p +
  theme(
    legend.position = "bottom",
    axis.text.x.bottom = element_text(
      angle = 90,
      vjust = 0.5,
      hjust = 1
    ),
    axis.title.x = element_blank(),
    axis.title.y = element_blank()
  ) +
  scale_color_viridis_d(end = 0.8) +
  scale_fill_viridis_d(end = 0.8)

p

If you want to use your own color scheme on the plots, the easiest way is to use the default styling theme = "maraca" and then add the colors as an extra layer.

p <- plot(maraca_dat)

colorScheme <- c("Active" = "steelblue", "Control" = "seagreen3")

p <- p +
  scale_color_manual(values = colorScheme) +
  scale_fill_manual(values = colorScheme)

p

Note that the numeric x-axis labels for the continuous endpoint part of the plot are actually text labels on the plot and cannot be directly changed using the ggplot2 theme() function.

The user has 2 ways of changing these labels. One is to overwrite the default text size for the plot. Do not forget to reset the default text size afterwards for further plotting.

keep_default <- GeomLabel$default_aes$size

# Changing default text size for the plot
update_geom_defaults("text", list(size = 3))

plot(maraca_dat)


# Make sure to change defaults back to default for new plots
update_geom_defaults("text", list(size = keep_default))

Alternatively, the user can use the parameter continuous_grid_spacing_x in the plot() function for maraca objects to create more or less grid lines and labels.

plot(maraca_dat, continuous_grid_spacing_x = 20)