當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。