PROG15

Author

KARAN H

PROGRAM 15

Step 1: Load the Libraries

library(ggplot2)
library(tidyr)
library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union

Step 2: Load the Dataset

data(iris)
head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
ggplot(iris, aes(x = Sepal.Length)) +
  geom_histogram(binwidth = 0.3, fill = "green", color = "black") +
  facet_wrap(~ Species) +
  labs(title = "Distribution of Sepal Length by Species",
       x = "Sepal Length (cm)",
       y = "Frequency") +
  theme_minimal()

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.")
  }

  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.

ggplot(iris, aes(x = Species, y = Sepal.Length)) +
  geom_boxplot(
    notch = TRUE,
    notchwidth = 0.6,
    outlier.color = "blue",
    outlier.shape = 16,
    fill = "green",
    alpha = 0.7
  ) +
  labs(
    title = "Sepal Length Distribution by Iris Species",
    subtitle = "Box Plot with Notches and Outlier Highlighting",
    x = "Species",
    y = "Sepal Length (cm)"
  ) +
  theme_minimal()

p=ggplot(iris, aes(x = Species, y = Sepal.Length))
p

p=p+ geom_boxplot(
)
p

p=p+ geom_boxplot(
  notch = TRUE,
    notchwidth = 0.6,
    outlier.color = "skyblue",
    outlier.shape = 16,
    fill = "green",
    alpha = 0.7
)
p

ggplot(iris, aes(x = Species, y = Petal.Length, fill = Species)) +
  geom_violin(trim = FALSE, alpha = 0.6, color = "black") +
  labs(
    title = "Distribution of Petal Length by Iris Species",
    x = "Species",
    y = "Petal Length (cm)"
  ) +
  theme_minimal(base_size = 14)

ToothGrowth$dose <- as.factor(ToothGrowth$dose)

ggplot(ToothGrowth, aes(x = dose, y = len, color = supp)) +
  geom_dotplot(
    binaxis = 'y',
    stackdir = 'center',
    position = position_dodge(width = 0.8),
    dotsize = 0.6,
    binwidth = 1.5  # Controls spacing of dots on y-axis
  ) +
  labs(
    title = "Dot Plot of Tooth Length by Dose and Supplement Type",
    x = "Dose (mg/day)",
    y = "Tooth Length",
    color = "Supplement Type"
  ) +
  theme_minimal()

cor_matrix <- cor(mtcars)

cor_df <- as.data.frame(as.table(cor_matrix))
head(cor_df)
  Var1 Var2       Freq
1  mpg  mpg  1.0000000
2  cyl  mpg -0.8521620
3 disp  mpg -0.8475514
4   hp  mpg -0.7761684
5 drat  mpg  0.6811719
6   wt  mpg -0.8676594
ggplot(cor_df, aes(x = Var1, y = Var2, fill = Freq)) +
  geom_tile(color = "white") +  # Draw tile borders
  scale_fill_gradient2(
    low = "blue", mid = "white", high = "red", 
    midpoint = 0, limit = c(-1, 1),
    name = "Correlation"
  ) +
  geom_text(aes(label = round(Freq, 2)), size = 3) +  # Show values
  theme_minimal() +
  labs(
    title = "Correlation Matrix (mtcars)",
    x = "", y = ""
  ) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))