HDS 3.3-3.4

Author

Yenran Yiran

library(tidyverse)
library(palmerpenguins)

Begin by loading the tidyverse and palmerpenguins packages in the code chunk above and adding your name as the author.

Visualizing the penguins Data

Two Categorical Variables

Let’s start by making a stacked bar chart of the island variable by sex. Fill in the missing code:

# Insert your code here to make the stacked bar chart
ggplot(
  data = penguins,
  aes(
    x = island,
    fill = sex
  )
) +
  geom_bar() +
  theme(legend.position = "bottom") +
  labs(
    x = "Island",
    y = "Number of Penguins",
    fill = "Sex",
    title = "Distribution of Penguins by Island and Sex"
  )

Modify the previous bar chart to make a side-by-side bar chart of the two variables:

ggplot(
  data = penguins,
  aes(
    x = island,
    fill = sex
  )
) +
  geom_bar(position = "dodge") +
  theme(legend.position = "bottom") +
  labs(
    x = "Island",
    y = "Number of Penguins",
    fill = "Sex",
    title = "Distribution of Penguins by Island and Sex"
  )

One Quantitative/One Categorical Variables

Now let’s make side-by-side boxplots of body_mass_g by sex. Put the quantitative variable on the y-axis and the categorical variable on the x-axis.

ggplot(
  data = penguins,
  aes(
    x = sex,
    y = body_mass_g
  )
) +
  geom_boxplot() +
  labs(
    x = "Sex",
    y = "Body Mass (g)",
    title = "Distribution of Body Mass Across Genders"
  )
Warning: Removed 2 rows containing non-finite outside the scale range
(`stat_boxplot()`).

One Quantitative/Two Categorical Variables

Is there a difference in body_mass_g between sexes? Use facet_wrap() to modify the previous plot to compare the sexes separately for each species. Is the sex difference more or less clear now?

ggplot(
  data = penguins,
  aes(
    x = sex,
    y = body_mass_g
  )
) +
  geom_boxplot() +
  facet_wrap(~ sex) +
  labs(
    x = "Sex",
    y = "Body Mass (g)",
    title = "Distribution of Body Mass Across Genders"
  )
Warning: Removed 2 rows containing non-finite outside the scale range
(`stat_boxplot()`).

Two Quantitative Variables

Is there a relationship between flipper_length_mm and set the body_mass_g? Make a scatterplot of the two variables:

ggplot(
  data = penguins,
  aes(
    x = body_mass_g,
    y = flipper_length_mm
  )
) +
  geom_point() +
  labs(
    x = "Body Mass (g)",
    y = "Flipper Length (mm)",
    title = "Relationship Between Flipper Lengths and Body Mass"
  )
Warning: Removed 2 rows containing missing values or values outside the scale range
(`geom_point()`).

Now add species to the plot by using different colored points:

ggplot(
  data = penguins,
  aes(
    x = body_mass_g,
    y = flipper_length_mm,
    color = species
  )
) +
  geom_point() +
  theme(legend.position = "bottom") +
  labs(
    x = "Body Mass (g)",
    y = "Flipper Length (mm)",
    color = "Species",
    title = "Relationship Between Flipper Lengths and Body Mass by Species"
  )
Warning: Removed 2 rows containing missing values or values outside the scale range
(`geom_point()`).

Now make the size of the points proportional to bill_depth_mm.

ggplot(
  data = penguins,
  aes(
    x = body_mass_g,
    y = flipper_length_mm,
    color = species,
    size = bill_depth_mm
  )
) +
  geom_point() +
  theme(legend.position = "bottom") +
  labs(
    x = "Body Mass (g)",
    y = "Flipper Length (mm)",
    color = "Species",
    size = "Bill Depth (mm)",
    title = "Relationship Between Flipper Lengths and Body Mass by Species and
    Bill Depth"
  )
Warning: Removed 2 rows containing missing values or values outside the scale range
(`geom_point()`).

What additional insight do you get from this?

Even just one graph can reveal several pieces of important data with the amount of layering that’s possible. A nice step further from strictly two variables being represented and compared. Adding the varying point size with respect to the bill depth allows me to see that despite Gentoo penguins having larger body mass and flipper lengths, they tend to have shorter bill depths in comparison to Adelie and Chinstrap.