81 votes

Réinitialisation des par aux valeurs par défaut au démarrage

Normalement, lorsque je crée mes propres fonctions de traçage, je crée une construction :

op <- par("mypar"=myvalue)
on.exit(par(op))

ce qui est la façon standard de rétablir la valeur de l'option par aux valeurs précédentes. Imaginons que vous ayez exécuté des fonctions qui ont modifié certains paramètres et que vous ayez besoin de rétablir les valeurs par défaut au démarrage de R. Quelle est la façon la plus pratique de le faire ?

Ou, en d'autres termes, comment atteindre les valeurs par défaut pour les éléments suivants par() ?

5 votes

J'avais l'impression qu'à chaque fois qu'un nouveau périphérique graphique est lancé, il reçoit de toute façon des valeurs par défaut.

3 votes

@James Ils le font, mais je pense que l'idée maîtresse de la question de @Joris est la suivante : existe-t-il un moyen de réinitialiser les pars pour l'appareil actuel si l'on n'a pas enregistré les valeurs par défaut ? En d'autres termes, comment déterminer la pars par défaut pour un appareil, et non la pars actuelle.

7 votes

Gavin Simpson Ah, ok, mais dev.new() y dev.off() pourrait être utilisé alors

103voto

DarkHalo Points 956

Chaque fois qu'un nouveau périphérique est ouvert, par() sera réinitialisé, donc une autre option est simplement de faire dev.off() et continuer.

52voto

Gavin Simpson Points 72349

C'est bidon, mais :

resetPar <- function() {
    dev.new()
    op <- par(no.readonly = TRUE)
    dev.off()
    op
}

fonctionne après une mode, mais il fait clignoter un nouveau dispositif à l'écran temporairement...

Par exemple :

> par(mfrow = c(2,2)) ## some random par change
> par("mfrow")
[1] 2 2
> par(resetPar())     ## reset the pars to defaults
> par("mfrow")        ## back to default
[1] 1 1

3 votes

Il serait peut-être plus prudent d'éviter de tenter de réinitialiser des éléments qui auraient été modifiés par le redimensionnement, tels que mai, mar, pin, plt et pty (comme cela est indiqué dans la page d'aide de par).

2 votes

Une idée similaire a été discutée sur R-help : tolstoy.newcastle.edu.au/R/e2/help/07/09/26665.html

0 votes

Je n'ai rien trouvé d'autre, donc ça va devoir le faire.

18voto

Anusha Points 345

De Quick-R

par()              # view current settings
opar <- par()      # make a copy of current settings
par(col.lab="red") # red x and y labels 
hist(mtcars$mpg)   # create a plot with these new settings 
par(opar)          # restore original settings

14 votes

Je connais cette méthode, mais elle ne rétablit pas les valeurs par défaut si vous les avez modifiées auparavant. par() affiche les paramètres actuels, pas les paramètres par défaut.

4 votes

Cette solution ne fonctionne peut-être pas dans ce cas, mais laissons-la ici comme une approche qui ne fonctionne pas.

4voto

Federico Giorgi Points 2460

Une solution alternative pour empêcher les fonctions de changer l'utilisateur par . Vous pouvez définir les paramètres par défaut au début de la fonction, de sorte que les paramètres graphiques et la présentation ne soient pas modifiés pendant l'exécution de la fonction. Voir ?on.exit pour plus de détails.

on.exit(layout(1))
opar<-par(no.readonly=TRUE)
on.exit(par(opar),add=TRUE,after=FALSE)

1voto

Mahesh Points 29

Utilisez le script ci-dessous pour revenir au tracé normal 1 :

par(mfrow = c(1,1))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X