58

例如边距、方向等...

dev.off()对我不起作用。我经常使用带有内置图形设备的 RStudio。然后我有绘图功能,我想在默认的 RStudio 图形设备中进行绘图,或者如果我调用X11()了 ,则在新窗口中进行绘图。

此行为不适用于dev.off(). 如果我的绘图函数总是调用dev.off(),它可能会无意中关闭X11()窗口,而是在 RStudio 设备中绘图。如果我总是调用dev.off()后跟X11(),它总是会在新窗口中绘制,即使我想在 RStudio 设备中绘制。

通常这可以用 解决getOption("device"),但是,总是返回RStudioGD

4

6 回答 6

50

见?par。这个想法是你在找到它们时保存它们,然后恢复:

old.par <- par(mar = c(0, 0, 0, 0))
## do plotting stuff with new settings

现在恢复到我们更改之前的状态mar

par(old.par)
于 2012-02-15T11:40:02.967 回答
27

在 RStudio 中,您可以导航到“绘图”并选择“删除绘图”

于 2013-09-17T15:01:41.703 回答
11

如果您已经错过了在启动时保存默认参数,并且您不想重新启动会话,那么您可以打开一个终端并通过(通常)键入 R 来运行 R。

然后输入:

标准杆()

它将打印所有默认值。

您可以将它们保存在文本文件中并导入到您当前正在使用的工作区中。

于 2014-06-19T17:30:00.893 回答
10

一个包含所有默认值的简单函数可以完成这项工作:

  reset_par <- function(){
    op <- structure(list(xlog = FALSE, ylog = FALSE, adj = 0.5, ann = TRUE,
                         ask = FALSE, bg = "transparent", bty = "o", cex = 1, 
                         cex.axis = 1, cex.lab = 1, cex.main = 1.2, cex.sub = 1, 
                         col = "black", col.axis = "black", col.lab = "black", 
                         col.main = "black", col.sub = "black", crt = 0, err = 0L, 
                         family = "", fg = "black", fig = c(0, 1, 0, 1), 
                         fin = c(6.99999895833333, 6.99999895833333), font = 1L, 
                         font.axis = 1L, font.lab = 1L, font.main = 2L, 
                         font.sub = 1L, lab = c(5L, 5L, 7L), las = 0L, 
                         lend = "round", lheight = 1, ljoin = "round", lmitre = 10, 
                         lty = "solid", lwd = 1, mai = c(1.02, 0.82, 0.82, 0.42), 
                         mar = c(5.1, 4.1, 4.1, 2.1), mex = 1, mfcol = c(1L, 1L), 
                         mfg = c(1L, 1L, 1L,1L), mfrow = c(1L, 1L), 
                         mgp = c(3, 1, 0), mkh = 0.001, new = FALSE, 
                         oma = c(0, 0, 0, 0), omd = c(0, 1, 0, 1), 
                         omi = c(0, 0, 0,0), pch = 1L, 
                         pin = c(5.75999895833333, 5.15999895833333),
                         plt = c(0.117142874574832, 0.939999991071427, 
                                 0.145714307397962, 0.882857125425167), 
                         ps = 12L, pty = "m", smo = 1, srt = 0, tck = NA_real_, 
                         tcl = -0.5, usr = c(0.568, 1.432, 0.568, 1.432), 
                         xaxp = c(0.6, 1.4, 4), xaxs = "r", xaxt = "s", 
                         xpd = FALSE, yaxp = c(0.6, 1.4, 4), yaxs = "r", 
                         yaxt = "s", ylbias = 0.2), 
                         .Names = c("xlog", "ylog", "adj", "ann", "ask", "bg", 
                         "bty", "cex", "cex.axis", "cex.lab", "cex.main", "cex.sub", 
                         "col", "col.axis", "col.lab", "col.main", "col.sub", "crt", 
                         "err", "family", "fg", "fig", "fin", "font", "font.axis", 
                         "font.lab", "font.main", "font.sub", "lab", "las", "lend", 
                         "lheight", "ljoin", "lmitre", "lty", "lwd", "mai", "mar", 
                         "mex", "mfcol", "mfg", "mfrow", "mgp", "mkh", "new", "oma",
                         "omd", "omi", "pch", "pin", "plt", "ps", "pty", "smo", 
                         "srt", "tck", "tcl", "usr", "xaxp", "xaxs", "xaxt", "xpd", 
                         "yaxp", "yaxs", "yaxt", "ylbias"))
  par(op)
  }

调用它使用:

reset_par()

于 2017-05-22T11:11:56.337 回答
5

对于边距, ?par 提供默认值 c(5,4,4,2)+0.1。以下应将边距重置为默认值。

par(mar=c(5,4,4,2)+0.1)
于 2019-04-24T18:45:47.833 回答
4

规范的答案仅在评论中(由 Cookie 提供),并且可能很容易被忽略:

获取当前/默认参数

old.par <- par(no.readonly = TRUE)

将它们设置在您的代码中,例如

par(mai=c(0,0,0,0))

然后你可以用

par(old.par)

或者,在一个函数中

on.exit(par(old.par))
于 2019-04-04T10:25:59.240 回答