R/vizualization_cb.R

Defines functions vizualization_cb

Documented in vizualization_cb

#' vizualization_cb
#' @export vizualization_cb

vizualization_cb <- function(transformed_data, power, endpoint) {
  transformed_data_sum <- transformed_data %>%
    group_by(Treatment, Time) %>%
    summarize(
      Mean_Response = mean(Response_Transformed_bc),
      sd_Response = sd(Response_Transformed_bc)
    )

  bar_plot_orig_scale <- ggplot(data = transformed_data_sum, aes(x = Time, y = Mean_Response)) +
    geom_bar(
      stat = "identity", position = "dodge",
      aes(color = Treatment), fill = "white"
    ) +
    geom_errorbar(aes(
      ymin = Mean_Response - sd_Response, ymax = Mean_Response + sd_Response,
      color = Treatment
    ), position = "dodge") +
    geom_point(
      position = position_jitterdodge(dodge.width = 0.85),
      aes(y = Response_Transformed_bc, color = Treatment), show.legend = FALSE,
      data = transformed_data
    ) +
    theme_bw() +
    labs(color = "Treatment") +
    theme(
      axis.text.x = element_text(angle = 45, vjust = 0.75, hjust = 0.75),
      panel.grid.major = element_blank(),
      panel.grid.minor = element_blank(),
      axis.text = element_text(size = 14),
      axis.title = element_text(size = 14),
      strip.text = element_text(size = 14),
      title = element_text(size = 16)
    ) +
    ylab(paste("Change from Baseline Transformed", endpoint)) +
    ggtitle("Bar Plot for Each Group Across Time Points")


  box_plot_transformed <- ggplot(data = transformed_data, aes(x = Time, y = Response_Transformed_bc)) +
    geom_boxplot(aes(color = Treatment), show.legend = FALSE) +
    geom_jitter(width = 0.1, aes(color = Treatment), show.legend = FALSE) +
    theme_bw() +
    labs(color = "Treatment") +
    theme(
      axis.text.x = element_text(angle = 45, vjust = 0.75, hjust = 0.75),
      panel.grid.major = element_blank(),
      panel.grid.minor = element_blank(),
      axis.text = element_text(size = 14),
      axis.title = element_text(size = 14),
      strip.text = element_text(size = 14),
      title = element_text(size = 16)
    ) +
    facet_wrap(Treatment ~ ., nrow = 1) +
    ylab(paste("Transformed Change from Baseline", endpoint)) +
    stat_summary(fun = "mean", color = "black", show.legend = FALSE) +
    ggtitle("Box Plot for Each Group Across Time Points")


  sub_line_plot <- ggplot(
    data = transformed_data,
    aes(x = Time, y = Response_Transformed_bc, group = SubjectID)
  ) +
    geom_line(aes(color = Treatment), size = 1.5, show.legend = FALSE) +
    theme_bw() +
    theme(
      legend.position = "bottom",
      panel.grid.major = element_blank(),
      panel.grid.minor = element_blank(),
      axis.text.x = element_text(
        angle = 45, vjust = 0.75, hjust = 0.75,
        size = 14
      ),
      axis.text.y = element_text(size = 14),
      axis.title = element_text(size = 14),
      strip.text = element_text(size = 14),
      title = element_text(size = 16)
    ) +
    ylab(paste("Transformed Change from Baseline", endpoint)) +
    facet_wrap(Treatment ~ ., nrow = 1) +
    ggtitle("Trajectory of Each Subject by Group")

  # line_plot <-
  #   ggplot(data = transformed_data_sum,
  #          aes(x = Time, y = Response, color = Treatment)) +
  #   geom_point() +
  #   geom_smooth(method = "lm", alpha = .15, aes(fill = Treatment))
  #   #geom_line(aes(color = Treatment, linetype = Treatment), size = 1.5) +
  #   # facet_wrap(scale ~ ., scales = "free_y") +
  #   theme_bw() +
  #   theme(legend.position = "bottom") +
  #   labs(color = "Treatment", linetype = "Treatment") +
  #   theme(axis.text.x = element_text(angle = 45, vjust = 0.75, hjust = 0.75))

  # Cheng's suggestion 3/8/2022
  line_plot <- ggplot(transformed_data_sum, aes(
    x = Time, y = Mean_Response,
    color = Treatment, group = Treatment
  )) +
    geom_point(size = 1.25) +
    geom_line(aes(
      x = Time, y = Mean_Response,
      color = Treatment, linetype = Treatment
    ),
    size = 1.25,
    show.legend = F
    ) +
    geom_errorbar(aes(ymin = Mean_Response - sd_Response, ymax = Mean_Response + sd_Response),
      width = .5, show.legend = F
    ) +
    theme_bw() +
    theme(legend.position = "bottom") +
    labs(color = "Treatment", linetype = "Treatment") +
    theme(
      axis.text.x = element_text(angle = 45, vjust = 0.75, hjust = 0.75),
      panel.grid.major = element_blank(),
      panel.grid.minor = element_blank(),
      axis.text = element_text(size = 14),
      axis.title = element_text(size = 14),
      strip.text = element_text(size = 14),
      title = element_text(size = 16),
      legend.text = element_text(size = 14),
      legend.title = element_text(size = 16)
    ) +
    ylab(paste("Transformed Change from Baseline", endpoint)) +
    ggtitle("Line Plot for Each Group Across Time Points") +
    guides(colour = guide_legend(override.aes = list(size = 10)))


  # ggplotly(line_plot) #Interactive plots
  # ggplotly(box_plot) #Interactive plots
  # #Combine plots into one

  # combined_plot <- ggarrange(
  #   plotlist = list(box_plot_transformed,
  #                   line_plot,
  #                   bar_plot_orig_scale,
  #                   sub_line_plot),
  #   common.legend = TRUE, legend = "none")
  # #, labels = 'AUTO')

  # Has not been implemented yet
  return(return(list(
    box = box_plot_transformed,
    group_line = line_plot,
    bar = bar_plot_orig_scale,
    sub_line = sub_line_plot
  )))
}
fdrennan/test documentation built on April 23, 2022, 12:37 a.m.