In exploratory data analysis, it is common to want to make two
different plots for same variables. For example, a survey data may have
a large number of questions like age, gender, region etc. It includes
several categorical and numerical features. Suppose a analyst want to
see age variable distributions with gender and without gender in side by
side view. There is no direct functions available in any of the
statistical packages. Here is a way to achieve the same thing using R
using ggplot2 customized function ExpTwoPlots
Function definition:
ExpTwoPlots(
  data,
  plot_type = "numeric",
  iv_variables = NULL,
  target = NULL,
  lp_geom_type = "boxplot",
  lp_arg_list = list(),
  rp_geom_type = "boxplot",
  rp_arg_list = list(),
  fname = NULL,
  page = NULL,
  theme = "Default"
)Different use cases
target = "gear"
categorical_features <- c("vs", "carb") # we can add as many categorical variables
numeircal_features <- c("mpg", "qsec") # we can add as many numerical variablesnum_1 <- ExpTwoPlots(mtcars, 
                     plot_type = "numeric",
                     iv_variables = numeircal_features,
                     target = NULL,
                     lp_arg_list = list(fill="orange"),
                     lp_geom_type = 'boxplot',
                     rp_arg_list = list(alpha=0.5, fill="white", color = "red", binwidth=1),
                     rp_geom_type = 'histogram',
                     page = c(2,1),
                     theme = "Default")
num_1## $`0`num_2 <- ExpTwoPlots(mtcars, 
                     plot_type = "numeric",
                     iv_variables = numeircal_features,
                     target = NULL,
                     lp_arg_list = list(fill = "white",color = "red",  binwidth=1),
                     lp_geom_type = 'histogram',
                     rp_arg_list = list(alpha=0.5, fill="red"),
                     rp_geom_type = 'density',
                     page = c(2,1),
                     theme = "Default")
num_2## $`0`num_3 <- ExpTwoPlots(mtcars, 
                     plot_type = "numeric",
                     iv_variables = numeircal_features,
                     target = NULL,
                     lp_arg_list = list(color = "red"),
                     lp_geom_type = 'density',
                     rp_arg_list = list(fill="orange"),
                     rp_geom_type = 'boxplot',
                     page = c(2,1),
                     theme = "Default")
num_3## $`0`num_4 <- ExpTwoPlots(mtcars, 
                     plot_type = "numeric",
                     iv_variables = numeircal_features,
                     target = NULL,
                     lp_arg_list = list(fill = "blue"),
                     lp_geom_type = 'qqplot',
                     rp_arg_list = list(fill="orange"),
                     rp_geom_type = 'boxplot',
                     page = c(2,1),
                     theme = "Default")
num_4## $`0`num_21 <- ExpTwoPlots(mtcars, 
                     plot_type = "numeric",
                     iv_variables = numeircal_features,
                     target = "gear",
                     lp_arg_list = list(fill="pink"),
                     lp_geom_type = 'boxplot',
                     rp_arg_list = list(alpha=0.5, fill = c("grey", "orange", "lightblue"), binwidth=1),
                     rp_geom_type = 'histogram',
                     page = c(2,1),
                     theme = "Default")
num_21## $`0`num_22 <- ExpTwoPlots(mtcars, 
                     plot_type = "numeric",
                     iv_variables = numeircal_features,
                     target = "gear",
                     lp_arg_list = list(fill = "white",color = "red",  binwidth=1),
                     lp_geom_type = 'histogram',
                     rp_arg_list = list(alpha=0.5, fill = c("red", "orange", "pink")),
                     rp_geom_type = 'density',
                     page = c(2,1),
                     theme = "Default")
num_22## $`0`num_23 <- ExpTwoPlots(mtcars, 
                     plot_type = "numeric",
                     iv_variables = numeircal_features,
                     target = "gear",
                     lp_arg_list = list(fill = "grey"),
                     lp_geom_type = 'density',
                     rp_arg_list = list(fill = c("blue", "orange", "pink"), alpha=0.5),
                     rp_geom_type = 'boxplot',
                     page = c(2,1),
                     theme = "Default")
num_23## $`0`num_24 <- ExpTwoPlots(mtcars, 
                     plot_type = "numeric",
                     iv_variables = numeircal_features,
                     target = "gear",
                     lp_arg_list = list(fill = "grey"),
                     lp_geom_type = 'qqplot',
                     rp_arg_list = list(fill = c("blue", "orange", "pink"), alpha=0.5),
                     rp_geom_type = 'density',
                     page = c(2,1),
                     theme = "Default")
num_24## $`0`num_25 <- ExpTwoPlots(mtcars, 
                     plot_type = "numeric",
                     iv_variables = numeircal_features,
                     target = "gear",
                     lp_arg_list = list(fill = "orange"),
                     lp_geom_type = 'boxplot',
                     rp_arg_list = list(fill = c("blue", "green", "red"), alpha=0.5),
                     rp_geom_type = 'qqplot',
                     page = c(2,1),
                     theme = "Default")
num_25## $`0`cat_1 <- ExpTwoPlots(mtcars, 
                     plot_type = "categorical",
                     iv_variables = categorical_features,
                     target = NULL,
                     lp_arg_list = list(),
                     lp_geom_type = 'donut',
                     rp_arg_list = list(stat = 'identity'),
                     rp_geom_type = 'bar',
                     page = c(2,1),
                     theme = "Default")
cat_1## $`0`cat_2 <- ExpTwoPlots(mtcars, 
                     plot_type = "categorical",
                     iv_variables = categorical_features,
                     target = NULL,
                     lp_arg_list = list(),
                     lp_geom_type = 'donut',
                     rp_arg_list = list(),
                     rp_geom_type = 'pie',
                     page = c(2,1),
                     theme = "Default")
cat_2## $`0`cat_3 <- ExpTwoPlots(mtcars, 
                     plot_type = "categorical",
                     iv_variables = categorical_features,
                     target = NULL,
                     lp_arg_list = list(stat = 'identity'),
                     lp_geom_type = 'barh',
                     rp_arg_list = list(),
                     rp_geom_type = 'pie',
                     page = c(2,1),
                     theme = "Default")
cat_3## $`0`cat_41 <- ExpTwoPlots(mtcars, 
                     plot_type = "categorical",
                     iv_variables = categorical_features,
                     target = 'gear',
                     lp_arg_list = list(),
                     lp_geom_type = 'donut',
                     rp_arg_list = list(stat = 'identity'),
                     rp_geom_type = 'bar',
                     page = c(2,1),
                     theme = "Default")
cat_41## $`0`cat_42 <- ExpTwoPlots(mtcars, 
                     plot_type = "categorical",
                     iv_variables = categorical_features,
                     target = 'gear',
                     lp_arg_list = list(),
                     lp_geom_type = 'pie',
                     rp_arg_list = list(stat = 'identity'),
                     rp_geom_type = 'barh',
                     page = c(2,1),
                     theme = "Default")
cat_42## $`0`