Reset graphic parameters return to default values ​​without using dev.off ()

Such as margins, orientations, etc.

dev.off() does not work for me. I often use RStudio with an integrated graphics device. Then I have graphing functions that I want to build either in the default RStudio graphics device, or if I called X11() , before that in a new window.

This behavior does not work with dev.off() . If my dev.off() function always calls dev.off() , it may accidentally close the X11() window and instead build on the RStudio device. If I always call dev.off() and then X11() , it will always appear in a new window, even if I wanted to build it on an RStudio device.

This can usually be enabled using getOption("device") , which always returns RStudioGD .

+50
r rstudio
Feb 15 '12 at 11:32
source share
6 answers

See The idea is that you save them as they are when you find them, and then restore:

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

Now restore them until we change mar :

 par(old.par) 
+44
Feb 15 '12 at 11:40
source share

In RStudio, you can simply go to “Plots” and select “Delete Graphics”

+24
Sep 17 '13 at 15:01
source share

If you have already skipped saving the default settings at startup, and you do not want to restart the session, you can open a terminal and start R using (usually) R input.

Then enter:

P()

It will print all the defaults.

You can save them in a text file and import into the workspace in which you are currently working.

+10
Jun 19 '14 at 17:30
source share

a simple task containing all the default values ​​can do the job:

  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) } 

call it using:

reset_par()

+5
May 22 '17 at 11:11
source share

The canonical answer was only in the comment (from Cookie), and it could easily be missed:

Get current / standard parameters

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

Install them in your code, for example

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

And then you can reset the pars with

 par(old.par) 

Or in function

 on.exit(par(old.par)) 
0
Apr 04 '19 at 10:25
source share

For the fields? Par provides a default value of c (5,4,4,2) +0.1. The following should reset the fields to their default values.

 par(mar=c(5,4,4,2)+0.1) 
0
Apr 24 '19 at 18:45
source share



All Articles