🧀Scatter Plot

We can use ggplot2 package to create a scatterplot.

library('palmerpenguins')
library('ggplot2')

Penguins dataset has following type of data.

Let's create a scatterplot to see the relation between flipper_length_mm and body_mass_g from this dataset.

ggplot(data = penguins, aes(x = flipper_length_mm, y = body_mass_g)) +
    geom_point()

Change the color of the points.

ggplot(data = penguins, aes(x = flipper_length_mm, y = body_mass_g)) +
    geom_point(color = "green")

Here, we have made the point's color green by specifying the name of the color by color argument inside geome_point function.

Color data points based on a column

Let's say we want to color the data points based on penguin species.

ggplot(data = penguins, aes(x = flipper_length_mm, y = body_mass_g)) +
    geom_point(aes(color = species))

Under geom_point function we added the code aes(color = species) which has changed the color of the point based on the species type from the species column.

Change the shape of a data point based on a column

Let's change the data point shape based on the species column from the penguins dataset.

ggplot(data = penguins, aes(x = flipper_length_mm, y = body_mass_g)) +
    geom_point(aes(color = species, shape = species))

Here, shape = species argument under geom_point function has changed the data point's shape according to the different species of penguins.

Divide the plot based on groups from a column.

Let's say we want the create different scatter plots for each species. For this purpose, we can subset our data into smaller sections and get graphs for each one.

ggplot(data = penguins, aes(x = flipper_length_mm, y = body_mass_g)) +
    geom_point(aes(color = species, shape = species)) +
    facet_wrap(~species)

Here, facet_wrap(~species) functions sub-sectioned the plot based on different species of penguins.

Add a title to the plot

ggplot(data = penguins, aes(x = flipper_length_mm, y = body_mass_g)) +
    geom_point(aes(color = species, shape = species)) +
    facet_wrap(~species) +
    labs(title = "Penguins: Body Mass vs. Flipper Length")

Here, we added the title of the plot by labs function.

Last updated