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
Save Plots
This lesson is locked
This lesson is called Save Plots, part of the Fundamentals of R course. This lesson is called Save Plots, 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")
# Save Plots --------------------------------------------------------------
# If you need to save a plot, you can use the ggsave() function.
# By default ggsave() will save the last plot you made.
# First we plot
ggplot(data = penguin_bill_length_by_island_and_sex,
mapping = aes(x = island,
y = mean_bill_length,
fill = sex)) +
geom_col(position = "dodge") +
labs(title = "Males have longer bills than females",
subtitle = "But they're all good penguins",
caption = "Data from the palmerpenguins R package",
x = NULL,
y = "Mean Bill Length in Millimeters",
fill = NULL) +
theme_economist() +
facet_grid(cols = vars(sex))
# Then we save
ggsave(filename = "plots/penguins-plot.png",
height = 8,
width = 11,
units = "in",
bg = "white",
dpi = 300)
# We can save our plot to other formats as well.
# PDF is a great option because it produces small file sizes
# and high-quality plots.
# You don't need to list dpi here as PDFs are vector based.
ggsave(filename = "plots/penguins-plot.pdf",
height = 8,
width = 11,
units = "in")
# You can also save a plot and then use that within ggsave()
penguins_plot <- ggplot(data = penguin_bill_length_by_island_and_sex,
mapping = aes(x = island,
y = mean_bill_length,
fill = sex)) +
geom_col(position = "dodge") +
labs(title = "Males have longer bills than females",
subtitle = "But they're all good penguins",
caption = "Data from the palmerpenguins R package",
x = NULL,
y = "Mean Bill Length in Millimeters",
fill = NULL) +
theme_economist() +
facet_grid(cols = vars(sex))
penguins_plot
ggsave(plot = penguins_plot,
filename = "plots/penguins-plot-2.pdf",
height = 8,
width = 11,
units = "in")
Your Turn
# Load Packages -----------------------------------------------------------
library(tidyverse)
# Import Data -------------------------------------------------------------
penguins <- read_csv("penguins.csv")
penguin_weight_by_species_and_sex <- penguins |>
drop_na(sex) |>
group_by(species, sex) |>
summarize(mean_weight = mean(body_mass_g))
# Save Plots --------------------------------------------------------------
# Copy the code from your last plot
# Save it as 10cm wide by 20cm tall png file with a white background
# YOUR CODE HERE
Learn More
I have only showed you how to save plots by saving the last plot you made. You can also save a plot as an object and then use this object as an argument in your ggsave function. For more on doing that, see the relevant page from the Stat545 course by Jenny Bryan.
You need to be signed-in to comment on this post. Login.
Marisel Strand
March 8, 2024
Hello, why do I get this when trying to save my plot?--thanks!
David Keyes Founder
March 8, 2024
It sounds like you're missing the directory called
plots
. Do you have that directory? Also, make sure you've got units spelled correctly (your code says untis now). :)Marisel Strand
March 8, 2024
Thanks for catching that!:) I'm not sure about that directory... Is that something that I have to create?
David Keyes Founder
March 8, 2024
Yes, if you don't already have the directory you will need to create it.
Leo Gutknecht-Gmeiner
March 27, 2024
How can I save multiple plots at the same time? That would be handy.
David Keyes Founder
March 27, 2024
This gets a bit complicated because it involves creating a custom function and working with the
purrr
package for iteration, but if you want to see how it works, I've written a blog post on the topic.