Сброс графических параметров до значений по умолчанию без использования dev.off () - PullRequest
50 голосов
/ 15 февраля 2012

Такие как поля, ориентации и тому подобное ...

dev.off() не работает для меня.Я часто использую RStudio со встроенным графическим устройством.Затем у меня есть функции построения графика, которые я хочу отобразить либо в графическом устройстве RStudio по умолчанию, либо, если раньше я вызывал X11(), в новом окне.

Это поведение не работает с dev.off().Если моя функция построения всегда вызывает dev.off(), она может непреднамеренно закрыть окно X11() и вместо этого отобразить на устройстве RStudio.Если бы я всегда вызывал dev.off(), а затем X11(), он всегда отображался в новом окне, даже если бы я планировал на устройстве RStudio.

Обычно это можно решить с помощью getOption("device"), однако, который всегда возвращает RStudioGD.

Ответы [ 6 ]

45 голосов
/ 15 февраля 2012

Видите? Пар.Идея состоит в том, что вы сохраняете их такими, какие они есть, когда находите их, а затем восстанавливаете:

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

Теперь восстановите их, как они были до того, как мы изменили mar:

par(old.par)
25 голосов
/ 17 сентября 2013

В RStudio, вы можете просто перейти к «Сюжетам» и выбрать «Удалить графики»

10 голосов
/ 19 июня 2014

Если вы уже пропустили сохранение параметров по умолчанию при запуске и не хотите перезапускать сеанс, вы можете открыть терминал и запустить R, обычно набирая R.

Затем введите:

пар ()

Будет напечатано все значения по умолчанию.

Вы можете сохранить их в текстовом файле и импортировать в рабочую область, в которой вы сейчас работаете.

5 голосов
/ 22 мая 2017

простая функция, содержащая все значения по умолчанию, может сделать работу:

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

1 голос
/ 04 апреля 2019

Канонический ответ был только в комментарии (от Cookie), и его можно легко пропустить:

Получить текущие / стандартные параметры

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

Установите их в своем коде, например,

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

И тогда вы можете сбросить парс с помощью

par(old.par)

Или, в функции

on.exit(par(old.par))
0 голосов
/ 24 апреля 2019

Для полей? Par предоставляет значение по умолчанию c (5,4,4,2) +0,1. Следующее должно сбросить поля до значений по умолчанию.

par(mar=c(5,4,4,2)+0.1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...