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:
png()
jpeg()
ragg::agg_png()
ragg::agg_jpeg()
petit_ggplot:
ggplot2::ggsave()
tinify()
optionsYou 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).