tinieR provides two convenience functions to save plots and automatically shrink their image file sizes: petit_plot()
and petit_ggplot()
.
To save and shrink a base R plot, print the plot and call petit_plot()
immediately after. Under the hood, this uses recordPlot()
to capture and replay the last plot created within the chosen device with the applied options:
plot(mtcars$mpg, mtcars$drat)
petit_plot(filename = "mtcars")
To save and shrink a ggplot, either create, modify, or show the plot and call petit_plot()
immediately after, in a similar process to base R above:
ggplot(data = palmerpenguins::penguins,
aes(flipper_length_mm, body_mass_g)) +
geom_point(aes(color = species)
petit_plot(filename = "penguins")
Or use petit_ggplot()
to capture specifically the last ggplot created or modified:
ggplot(data = palmerpenguins::penguins,
aes(flipper_length_mm, body_mass_g)) +
geom_point(aes(color = species)
petit_ggplot(filename = "penguins")
Or provide the plot object explicitly to petit_ggplot()
with plot
:
p <- ggplot(data = palmerpenguins::penguins,
aes(flipper_length_mm, body_mass_g)) +
geom_point(aes(color = species)
petit_ggplot(filename = "penguins", plot = p)
You can use device
to set the output file to either png
or jpg
. If you have the ragg package installed, you can also set ragg = TRUE
(within petit_plot()
only) to use that as the backend for saving a plot, with all the benefits ragg provides.
Use path
to save your plot into a sub-directory. By default, plots are saved into the current working directory, but you can provide a path to save them into instead. Just don’t include the final trailing path separator (e.g., path = "images/plots"
to save an image in the ‘plots’ folder).
Set keep_large = TRUE
to keep the original image file alongside the tinified image. The tinified image will have a suffix attached, by default _tiny
, that you can change with suffix
(suffix is ignored if keep_large = FALSE
).
Any other arguments are passed directly to the underlying device used to save the plot. This allows you to set all the other usual plot options you might expect, such as width or height. These underlying functions and their subsequent options depend on the function and device used:
petit_plot:
petit_ggplot:
tinify()
options
You can also pass in the quiet
, return_path
, and key
options that are passed along to tinify()
. See the tinify()
documentation or the Get Started vignette for details.
Both petit_plot()
and petit_ggplot()
should respect any defaults set by tinify_defaults()
, with the exception of overwrite
(which is superseded by the keep_large
argument) and resize
(as you can just set your desired width/height when creating the plot).