当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R ggplot2 ggsave 使用合理的默认值保存 ggplot (或其他网格对象)


ggsave() 是保存绘图的便捷函数。它默认使用当前图形设备的大小保存您显示的最后一个绘图。它还根据扩展猜测图形设备的类型。

用法

ggsave(
  filename,
  plot = last_plot(),
  device = NULL,
  path = NULL,
  scale = 1,
  width = NA,
  height = NA,
  units = c("in", "cm", "mm", "px"),
  dpi = 300,
  limitsize = TRUE,
  bg = NULL,
  ...
)

参数

filename

要在磁盘上创建的文件名。

plot

要保存的图,默认为最后显示的图。

device

要使用的设备。可以是设备函数(例如 png ),也可以是以下之一:"eps"、"ps"、"tex"(pictex)、"pdf"、"jpeg"、"tiff"、"png"、"bmp"、"svg" 或 "wmf"(仅限 Windows)。

path

保存绘图的目录路径: pathfilename 组合起来创建完全限定的文件名。默认为工作目录。

scale

乘法缩放因子。

width, height, units

units("in"、"cm"、"mm" 或 "px")中的绘图大小。如果未提供,则使用当前图形设备的大小。

dpi

绘图分辨率。还接受字符串输入:"retina" (320)、"print" (300) 或 "screen" (72)。仅适用于栅格输出类型。

limitsize

TRUE(默认)时,ggsave()将不会保存大于50x50英寸的图像,以防止以像素为单位指定尺寸的常见错误。

bg

背景色。如果 NULL ,则使用绘图主题中的 plot.background 填充值。

...

传递给图形设备函数的其他参数,由 device 指定。

细节

注意:带有页码的文件名可以通过包含 C 整数格式表达式来生成,例如 %03d (如大多数 R 图形设备的默认文件名,请参见 png() )。因此, filename = "figure%03d.png" 将生成连续的文件名 figure001.pngfigure002.pngfigure003.png 等。要写入包含 % 符号的文件名,请使用 %% 。例如, filename = "figure-100%%.png" 将生成文件名 figure-100%.png

保存图像时不使用ggsave()

在大多数情况下,ggsave() 是保存绘图的最简单方法,但有时您可能希望通过直接写入图形设备来保存绘图。为此,您可以打开常规 R 图形设备,例如 png()pdf() ,打印绘图,然后使用 dev.off() 关闭设备。示例部分说明了该技术。

例子

if (FALSE) {
ggplot(mtcars, aes(mpg, wt)) +
  geom_point()

ggsave("mtcars.pdf")
ggsave("mtcars.png")

ggsave("mtcars.pdf", width = 4, height = 4)
ggsave("mtcars.pdf", width = 20, height = 20, units = "cm")

# delete files with base::unlink()
unlink("mtcars.pdf")
unlink("mtcars.png")

# specify device when saving to a file with unknown extension
# (for example a server supplied temporary file)
file <- tempfile()
ggsave(file, device = "pdf")
unlink(file)

# save plot to file without using ggsave
p <-
  ggplot(mtcars, aes(mpg, wt)) +
  geom_point()
png("mtcars.png")
print(p)
dev.off()

}
源代码:R/save.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Save a ggplot (or other grid object) with sensible defaults。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。