Zresetuj parametry graficzne z powrotem do wartości domyślnych bez użycia dev.off()
Takie jak marginesy, orientacje i takie...
dev.off()
nie działa na mnie. Często korzystam z RStudio, z wbudowanym urządzeniem graficznym. Następnie mam funkcje kreślarskie, które chcę wykreślić albo w domyślnym urządzeniu graficznym RStudio, albo jeśli wywołałem X11()
, wcześniej w nowym oknie.
To zachowanie nie działa z dev.off()
. Jeśli moja funkcja wykreślania zawsze wywoła dev.off()
, może przypadkowo zamknąć okno X11()
i zamiast tego wykreślić w urządzeniu RStudio. Jeśli Zawsze wywołuję dev.off()
, a następnie X11()
, zawsze wykreśliłoby to w nowym oknie, nawet gdybym chciał wykreślić w urządzeniu RStudio.
Zwykle można to rozwiązać za pomocą getOption("device")
, jednak zawsze zwraca RStudioGD
.
6 answers
Widzisz ?par. Chodzi o to, że zapisujesz je tak, jak są, gdy je znalazłeś, a następnie przywracasz: {]}
old.par <- par(mar = c(0, 0, 0, 0))
## do plotting stuff with new settings
Teraz Przywróć takie, jakie były przed zmianą mar
:
par(old.par)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-15 20:58:34
W RStudio możesz po prostu przejść do "działki" i wybrać "Usuń działki"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-17 15:01:41
Jeśli nie zapisałeś już domyślnych parametrów przy starcie, a nie chcesz ponownie uruchomić sesji, możesz otworzyć terminal i uruchomić R, wpisując (Zwykle) R.
Następnie wpisz:
Par ()
Wyświetli wszystkie wartości domyślne.
Możesz zapisać je w pliku tekstowym i zaimportować do obszaru roboczego, w którym aktualnie pracujesz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-19 17:30:00
Prosta funkcja zawierająca wszystkie wartości domyślne może wykonać zadanie:
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)
}
Wywołaj używając:
reset_par()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-21 07:52:42
Na marginesie ?par dostarcza domyślną wartość c(5,4,4,2) + 0.1. Poniżej należy zresetować marginesy do wartości domyślnych.
par(mar=c(5,4,4,2)+0.1)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-24 18:45:47
Kanoniczna odpowiedź była tylko w komentarzu (przez Cookie) i można ją łatwo przeoczyć:
Pobierz bieżące / domyślne parametry
old.par <- par(no.readonly = TRUE)
Ustaw je w swoim kodzie, np.
par(mai=c(0,0,0,0))
A następnie możesz zresetować pars za pomocą
par(old.par)
Lub w funkcji
on.exit(par(old.par))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-04 10:25:59