prg10

Author

Saru

Develop an R function to draw a density curve representing the probability density function of a continuous variable, with separate curves for each group, using ggplot2.

Step 1 : Load the library

library(ggplot2)
Warning: package 'ggplot2' was built under R version 4.5.3

Step 2 : Define the function

plot_density_by_group <- function(data, continuous_var, group_var, fill_colors = NULL) {
  if (!(continuous_var %in% names(data))|| !(group_var %in% names(data)))
  {
    stop("Invalid column names.Make sure both variables exist in the dataset.")
  }
  
  p <- ggplot(data, aes_string(x= continuous_var, color = group_var , fill = group_var))+
  geom_density(alpha =0.4)+
  labs(title = paste("Density PLot of " , continuous_var, "by", group_var),
       x = "continuous_var ",
       y = "Density"
       )+
     theme_minimal()
  
  if(!is.null(fill_colors)){
    p <- p + scale_fill_manual(values = fill_colors)+
             scale_color_manual(values = fill_colors)
  }
  return(p)
}
plot_density_by_group(iris, "Sepal.Length", "Species")
Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
ℹ Please use tidy evaluation idioms with `aes()`.
ℹ See also `vignette("ggplot2-in-packages")` for more information.