فهرست منبع

Add error bar color controls

Bryan Roessler 7 ماه پیش
والد
کامیت
6015f7faa8
1فایلهای تغییر یافته به همراه30 افزوده شده و 25 حذف شده
  1. 30 25
      qhtcp-workflow/apps/r/calculate_interaction_zscores.R

+ 30 - 25
qhtcp-workflow/apps/r/calculate_interaction_zscores.R

@@ -458,6 +458,30 @@ generate_and_save_plots <- function(out_dir, filename, plot_configs) {
       if (!is.null(config$y_label)) plot <- plot + ylab(config$y_label)
       if (!is.null(config$coord_cartesian)) plot <- plot + coord_cartesian(ylim = config$coord_cartesian)
 
+      # Add error bars if specified
+      if (!is.null(config$error_bar) && config$error_bar) {
+        error_bar_color <- if (!is.null(config$error_bar_params$color)) {
+          config$error_bar_params$color
+        } else {
+          "red"
+        }
+        
+        if (!is.null(config$error_bar_params$ymin) && !is.null(config$error_bar_params$ymax)) {
+          ymin_value <- config$error_bar_params$ymin
+          ymax_value <- config$error_bar_params$ymax
+        } else {
+          y_mean_col <- paste0("mean_", config$y_var)
+          y_sd_col <- paste0("sd_", config$y_var)
+          ymin_value <- !!sym(y_mean_col) - !!sym(y_sd_col)
+          ymax_value <- !!sym(y_mean_col) + !!sym(y_sd_col)
+        }
+        
+        plot <- plot + geom_errorbar(aes(
+          ymin = ymin_value,
+          ymax = ymax_value,
+          color = error_bar_color))
+      }
+
       plotly_plot <- suppressWarnings(plotly::ggplotly(plot))
 
       static_plots[[i]] <- plot
@@ -496,7 +520,7 @@ generate_scatter_plot <- function(plot, config) {
   size <- if (!is.null(config$size)) config$size else 1.5
   position <-
     if (!is.null(config$position) && config$position == "jitter") {
-      position_jitter(width = 0.1, height = 0)
+      position_jitter(width = 0.2, height = 0)
     } else {
       "identity"
     }
@@ -575,29 +599,6 @@ generate_scatter_plot <- function(plot, config) {
       )
     }
   }
-  
-  # Add error bars if specified
-  if (!is.null(config$error_bar) && config$error_bar && !is.null(config$y_var)) {
-    if (!is.null(config$error_bar_params)) {
-      error_bar_color <- if (!is.null(config$error_bar_params$color)) {
-        config$error_bar_params$color
-      } else {
-        "red"
-      }
-      
-      plot <- plot + geom_errorbar(aes(
-        ymin = config$error_bar_params$ymin,
-        ymax = config$error_bar_params$ymax,
-        color = error_bar_color))
-    } else {
-      y_mean_col <- paste0("mean_", config$y_var)
-      y_sd_col <- paste0("sd_", config$y_var)
-      plot <- plot + geom_errorbar(aes(
-        ymin = !!sym(y_mean_col) - !!sym(y_sd_col),
-        ymax = !!sym(y_mean_col) + !!sym(y_sd_col),
-        color = "red"))
-    }
-  }
 
   # Customize X-axis if specified
   if (!is.null(config$x_breaks) && !is.null(config$x_labels) && !is.null(config$x_label)) {
@@ -755,6 +756,9 @@ generate_interaction_plot_configs <- function(df, type) {
       title = sprintf("%s Scatter RF for %s with SD", OrfRep, var),
       coord_cartesian = y_limits,
       error_bar = TRUE,
+      error_bar_params = list(
+        color = "red",
+      ),
       x_breaks = unique(df$conc_num_factor_factor),
       x_labels = as.character(unique(df$conc_num)),
       position = "jitter",
@@ -825,7 +829,8 @@ generate_interaction_plot_configs <- function(df, type) {
         error_bar = TRUE,
         error_bar_params = list(
           ymin = 0 - (2 * WT_sd_value),
-          ymax = 0 + (2 * WT_sd_value)
+          ymax = 0 + (2 * WT_sd_value),
+          color = "black"
         ),
         smooth = TRUE,
         x_breaks = unique(group_data$conc_num_factor_factor),