129 votes

Erreur dans plot.new() : marges de la figure trop grandes en R

Je suis novice en R mais j'ai déjà réalisé de nombreux graphiques de corrélation avec des ensembles de données plus petits. Cependant, lorsque j'essaie de tracer un grand ensemble de données (2 Go et plus), je peux produire le tracé sans problème, mais la légende ne s'affiche pas. Des conseils ? ou des alternatives ?

library(gplots)
r.cor <- cor(r)
layout(matrix(c(1,1,1,1,1,1,1,1,2,2), 5, 2, byrow = TRUE))
par(oma=c(5,7,1,1))
cx <- rev(colorpanel(25,"yellow","black","blue"))
leg <- seq(min(r.cor,na.rm=T),max(r.cor,na.rm=T),length=10)
image(r.cor,main="Correlation plot Normal/Tumor data",axes=F,col=cx)
axis(1, at=seq(0,1,length=ncol(r.cor)), labels=dimnames(r.cor)[[2]], 
    cex.axis=0.9,las=2)
axis(2,at=seq(0,1,length=ncol(r.cor)), labels=dimnames(r.cor)[[2]],
     cex.axis=0.9,las=2)
image(as.matrix(leg),col=cx,axes=T)     

Erreur dans plot.new() : marges des chiffres trop importantes

tmp <- round(leg,2)
axis(1,at=seq(0,1,length=length(leg)), labels=tmp,cex.axis=1)

168voto

Steve Pitchers Points 584

Cette erreur peut se produire dans Rstudio simplement parce que votre volet "Plots" est à peine trop petit. Essayez d'agrandir votre "Files, Plots, Packages, Help, Viewer" et voyez si cela vous aide !

94voto

Gavin Simpson Points 72349

Le problème est que la petite figure région 2 créée par votre layout() call n'est pas suffisamment grand pour contenir uniquement les marges par défaut, sans parler d'un tracé.

Plus généralement, vous obtenez cette erreur si la taille de la région de traçage sur le périphérique n'est pas assez grande pour effectuer un traçage. Dans le cas de l'OP, le problème était d'avoir un dispositif de traçage trop petit pour contenir tous les sous-points et leurs marges. et laisser une région de traçage suffisamment grande pour y dessiner.

Les utilisateurs de RStudio peuvent rencontrer cette erreur si l'onglet Plot est trop petit pour laisser suffisamment d'espace pour contenir les marges, la région de traçage, etc. Cela est dû au fait que la taille physique de ce volet correspond à la taille du périphérique graphique. Il ne s'agit pas de problèmes indépendants ; le volet de traçage dans RStudio est juste un autre périphérique de traçage, comme png() , pdf() , windows() y X11() .

Les solutions comprennent :

  1. réduire la taille des marges ; cela peut être utile surtout si vous essayez, comme dans le cas du PO, de dessiner plusieurs tracés sur le même appareil.

  2. l'augmentation des dimensions physiques du dispositif, soit dans l'appel au dispositif (par ex. png() , pdf() ) ou en redimensionnant la fenêtre ou le volet contenant le dispositif.

  3. réduire la taille du texte sur la parcelle, car cela permet de contrôler la taille des marges, etc.

Réduire la taille des marges

Avant la ligne qui cause le problème, essayez :

par(mar = rep(2, 4))

puis tracer la deuxième image

image(as.matrix(leg),col=cx,axes=T)

Vous devrez jouer avec la taille des marges sur la page d'accueil. par() appeler l'émission pour bien faire les choses.

Augmenter la taille de l'appareil

Vous devrez peut-être aussi augmenter la taille de l'appareil sur lequel vous effectuez le traçage.

Un dernier conseil, gardez le par() par défaut avant de les modifier, donc modifiez vos données existantes. par() appeler :

op <- par(oma=c(5,7,1,1))

puis à la fin du traçage, faire

par(op)

75voto

Justas Points 388

Si vous obtenez ce message dans RStudio, en cliquant sur la figure "balai" "Effacer tous les tracés" dans l'onglet Tracés et réessayer plot() peut fonctionner.

enter image description here

28voto

jobligado Points 371

Cela se produit parfois dans RStudio. Pour le résoudre, vous pouvez essayer de tracer dans une fenêtre externe (Windows uniquement) :

windows() ## create window to plot your file
## ... your plotting code here ...
dev.off()

22voto

Janac Meena Points 622

J'ai eu cette erreur dans R Studio, et elle a été simplement corrigée en agrandissant la barre latérale en cliquant et en faisant glisser son bord de droite à gauche.

Photo ici : https://janac.medium.com/error-in-plot-new-figure-margins-too-large-in-r-214621b4b2af

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