Get access to all lessons in this course.
- Welcome to Fundamentals of R
- Update Everything
- Start a New Project
-
Data Wrangling and Analysis
- The Tidyverse
- Pipes
- select()
- mutate()
- filter()
- summarize()
- group_by() and summarize()
- arrange()
- Create a New Data Frame
- Bring it All Together (Data Wrangling)
-
Data Visualization
- The Grammar of Graphics
- Scatterplots
- Histograms
- Bar Charts
- Setting color and fill Aesthetic Properties
- Setting color and fill Scales
- Setting x and y Scales
- Adding Text to Plots
- Plot Labels
- Themes
- Facets
- Save Plots
- Bring it All Together (Data Visualization)
-
Quarto
- Quarto Overview
- YAML
- Text
- Code Chunks
- Tips for Working with Quarto
- Bring It All Together (Quarto)
-
Wrapping Up
- An Important Workflow Tip
Fundamentals of R
Bar Charts
This lesson is locked
This lesson is called Bar Charts, part of the Fundamentals of R course. This lesson is called Bar Charts, part of the Fundamentals of R course.
If the video is not playing correctly, you can watch it in a new window
Transcript
Click on the transcript to go to that point in the video. Please note that transcripts are auto generated and may contain minor inaccuracies.
View code shown in video
# Load Packages -----------------------------------------------------------
library(tidyverse)
# Import Data -------------------------------------------------------------
penguins <- read_csv("penguins.csv")
# Bar Charts --------------------------------------------------------------
# There are two basic approaches to making bar charts,
# both of which use geom_bar().
# Approach #1
# Use your full dataset.
# Only assign a variable to the x axis.
# Let ggplot use the default stat transformation (stat = "count")
# to generate counts that it then plots on the y axis.
ggplot(data = penguins,
mapping = aes(x = bill_length_mm)) +
geom_bar()
# The default statistical transformation for geom_bar() is count.
# This will give us the same result as our previous plot.
ggplot(data = penguins,
mapping = aes(x = bill_length_mm)) +
geom_bar(stat = "count")
# Approach #2
# Wrangle your data frame before plotting, creating a new data frame
# in the process
# Assign variables to the x and y axes
# Use stat = "identity" to tell ggplot to use the data exactly as it is
# It's often easier to do our analysis work, save a data frame,
# and then use this to plot.
# Let's recreate our penguin_bill_length_by_island data frame.
penguin_bill_length_by_island <- penguins |>
group_by(island) |>
summarize(mean_bill_length = mean(bill_length_mm, na.rm = TRUE)) |>
arrange(mean_bill_length)
# Then let's use this data frame to make a bar chart.
# The stat = "identity" here tells ggplot to use the exact data points
# without any statistical transformations.
ggplot(data = penguin_bill_length_by_island,
mapping = aes(x = island,
y = mean_bill_length)) +
geom_bar(stat = "identity")
# We can also flip the x and y axes.
ggplot(data = penguin_bill_length_by_island,
mapping = aes(x = mean_bill_length,
y = island)) +
geom_bar(stat = "identity")
# The function coord_flip() will do the same thing.
ggplot(data = penguin_bill_length_by_island,
mapping = aes(x = island,
y = mean_bill_length)) +
geom_bar(stat = "identity") +
coord_flip()
# We can also use geom_col(), which is the same as geom_bar(stat = "identity")
ggplot(data = penguin_bill_length_by_island,
mapping = aes(x = island,
y = mean_bill_length)) +
geom_col()
Your Turn
# Load Packages -----------------------------------------------------------
library(tidyverse)
# Import Data -------------------------------------------------------------
penguins <- read_csv("penguins.csv")
# Bar Charts --------------------------------------------------------------
# Use the v1 approach to make a bar chart that shows a count of the number of penguins by species.
# YOUR CODE HERE
# Use the v2 approach by doing the following:
# 1. Creating a new data frame called penguins_by_species that is a
# count of the number of penguins by species
# 2. Plot your data frame using the v2 approach with geom_bar()
# YOUR CODE HERE
# Make the same graph as above, but use geom_col() instead of geom_bar()
# YOUR CODE HERE
Learn More
You can also find examples of code to make bar charts on the Data to Viz website , the R Graph Gallery website , and in Chapter 3 of the R Graphics Cookbook. Michael Toth also has a detailed blog post about making bar charts with ggplot.
You need to be signed-in to comment on this post. Login.