web-dev-qa-db-fra.com

Réinitialiser les paramètres graphiques aux valeurs par défaut sans utiliser dev.off ()

Tels que les marges, les orientations et autres ...

dev.off() ne fonctionne pas pour moi. J'utilise souvent RStudio, avec son périphérique graphique intégré. J'ai ensuite des fonctions de tracé que je souhaite tracer soit dans le périphérique graphique RStudio par défaut, soit si j'ai appelé X11(), avant dans une nouvelle fenêtre.

Ce comportement ne fonctionne pas avec dev.off(). Si ma fonction de traçage appelle toujours dev.off(), elle risque de fermer par inadvertance la fenêtre X11() et de créer un tracé dans le périphérique RStudio. Si j'appelle toujours dev.off() suivi de X11(), le tracé sera toujours dans une nouvelle fenêtre, même si je souhaite tracer dans le périphérique RStudio.

D'ordinaire, cela pourrait être résolu avec getOption("device"), cependant, cela retourne toujours RStudioGD.

50
Cookie

Vous voyez? L'idée est que vous les sauvegardiez tels quels quand vous les avez trouvés, puis que vous les restauriez:

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

Maintenant, restaurez ce qu’ils étaient avant de changer mar:

par(old.par)
45
mdsumner

Dans RStudio, vous pouvez simplement naviguer vers "Parcelles" et sélectionner "Supprimer les parcelles".

25
rinzy kutex

Si vous avez déjà manqué d'enregistrer les paramètres par défaut au démarrage et que vous ne voulez pas redémarrer la session, vous pouvez ouvrir un terminal et exécuter R en (généralement) en tapant R.

Puis tapez:

par()

Cela affichera toutes les valeurs par défaut.

Vous pouvez les enregistrer dans un fichier texte et les importer dans l'espace de travail dans lequel vous travaillez actuellement.

10
Umut Eser

une simple fonction contenant tous les défauts peut faire le travail:

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

appelez-le en utilisant:

reset_par()

5
Farid Cheraghi

La réponse canonique était seulement dans un commentaire (par Cookie), et pourrait facilement être oubliée:

Obtenir les paramètres actuels/par défaut

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

Définissez-les dans votre code, par exemple.

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

Et puis vous pouvez réinitialiser les pairs avec

par(old.par)

Ou, dans une fonction

on.exit(par(old.par))
1
Robert Hijmans

Pour les marges, par fournit une valeur par défaut de c (5,4,4,2) +0,1. Ce qui suit devrait réinitialiser les marges aux valeurs par défaut.

par(mar=c(5,4,4,2)+0.1)
0
Saugata Cahtterjee