web-dev-qa-db-fra.com

plot.new n'a pas encore été appelé

Pourquoi cela arrive-t-il?

plot(x,y)
yx.lm <- lm(y ~ x)
lines(x, predict(yx.lm), col="red")

Erreur dans plot.xy(xy.coords(x, y), type = type, ...): plot.new n'a pas encore été appelé

34
optform

Une action, très probablement non représentée dans le code visible, a fermé le dispositif d'écran interactif. Cela pourrait être fait soit par un "clic" sur un bouton de fermeture. (Peut également être effectué par un dev.off () supplémentaire lors du traçage sur un périphérique de fichiers. Cela peut arriver si vous collez une commande de traçage multiligne comportant un dev, off () à la fin, mais des erreurs lors de l’ouverture du périphérique externe mais que hte dev.off () se trouve sur une ligne distincte afin de fermer accidentellement le périphérique interactif).

Certaines implémentations (la plupart?) R démarrent automatiquement un périphérique graphique à l'écran, mais si vous le fermez, vous devez le réinitialiser. Sous Windows, il pourrait s'agir de window(); sur un Mac, quartz(); et sur une boîte Linux, x11(). Vous devrez peut-être aussi émettre une commande plot.new(). Je ne fais que suivre les ordres. Lorsque j'obtiens cette erreur, j'émets plot.new() et si je ne vois pas de fenêtre de tracé, j'émets également quartz(). Je recommence ensuite depuis le début avec une nouvelle commande plot(., ., ...) et tout ajout à cette image d'écran.

29
42-

Dans mon cas, j'essayais d'appeler plot(x, y) et lines(x, predict(yx.lm), col="red") dans deux morceaux distincts du fichier Rmarkdown. Cela fonctionnait sans problème lors de l'exécution morceau par morceau, mais le document correspondant ne tricotait pas. Après avoir déplacé tous les appels de traçage dans un bloc, le problème a été résolu.

8
Jelena-bioinf

En tant que novice, j'ai rencontré le même «problème».

Pour les novices: Lorsque vous appelez plot(), la fenêtre graphique obtient le focus et vous ne pouvez plus entrer de commandes dans R. C’est alors que vous concluez que vous devez fermer la fenêtre graphique pour revenir à R. .. Des commandes, telles que identify(), agissent sur les fenêtres de graphe ouvertes/actives . Lorsque identify() ne parvient pas à trouver une fenêtre de graphe ouverte/active, il affiche ce message d'erreur. 

Cependant, vous pouvez simplement cliquer sur la fenêtre R sans fermer la fenêtre du graphique . Ensuite, vous pouvez taper d'autres commandes à l'invite R, telles que identify() etc. 

3
Ronnie

Si quelqu'un utilise la fonction print (par exemple, avec mtext), commencez par décrire un graphique nul

plot(0,type='n',axes=FALSE,ann=FALSE)

et ensuite imprimer avec newpage = F

print(data, newpage = F)
1
Alex Nevsky

J'ai eu le même problème ... mon problème était que je fermais ma fenêtre de quartz après parcelle (x, y). Une fois que je l'ai gardé ouvert, les lignes qui entraînaient auparavant des erreurs ont simplement ajouté des éléments à mon intrigue (comme ils étaient censés le faire). Espérons que cela pourrait aider certaines personnes qui arrivent sur cette page.

1
Hank

une erreur plot.new () se produit lorsque seule une partie de la fonction est exécutée.

Veuillez trouver la pièce jointe pour un exemple de correction d'erreur Avec erreur .... Quand abline est exécuté sans plot () ci-dessus  enter image description here Sans erreur ... Quand le tracé et abline ont été exécutés ensemble  enter image description here

0
Abhishek