R 如何让函数内的ggsave使用传递给它的绘图的尺寸?

R 如何让函数内的ggsave使用传递给它的绘图的尺寸?,r,function,ggplot2,R,Function,Ggplot2,我有一堆绘图,需要保存在给定的文件名结构中 export_png <- function(p, fn, h, w){ ggsave(filename = paste(fn, "-", date, ".png", sep = ""), plot = p, height = h, width = w )} …但有些人并不真正需要它们,因为图例很小,而且ggplot2的默认尺寸计算也很好 export_png(p = normal_pl

我有一堆绘图,需要保存在给定的文件名结构中

export_png <- function(p, fn, h, w){
  ggsave(filename = paste(fn, "-", date, ".png", sep = ""), plot = p,
         height = h,
         width = w
         )}
…但有些人并不真正需要它们,因为图例很小,而且ggplot2的默认尺寸计算也很好

export_png(p = normal_plot, fn = "normal", h = N, w = M)
有没有办法将这些绘图的默认尺寸传递到我的函数中,这样我就不必手动确定
N
&
M


我看过一些问题,但它们在某些时候使用了定义的维度。

您可以通过在函数中使用默认参数来实现这一点:

export_png <- function(p, fn, h=par("din")[2], w=par("din")[1]){
    ggsave(filename = paste(fn, "-", date, ".png", sep = ""), plot = p,
           height = h,
           width = w
    )}

export\u png我想我需要一个具体的例子来理解。plot对象是否有一个特征,您可以查看它以确定它是否应该是大的?(或者这就是你要问的吗?)你所说的“绘图的默认尺寸”是什么意思?这些尺寸是在哪里定义的?请参阅din参数以了解我认为你所说的默认尺寸。1k谢谢
par
是我所需要的:-)。我还应该提到,您还没有定义日期,但我假设它是一个字符串。如果你打算使用sep=“”,你可以查看
paste0
,而不是
paste
——这应该更有效。
export_png <- function(p, fn, h=par("din")[2], w=par("din")[1]){
    ggsave(filename = paste(fn, "-", date, ".png", sep = ""), plot = p,
           height = h,
           width = w
    )}