web-dev-qa-db-fra.com

Erreur dans plot.new (): les marges des chiffres sont trop grandes dans R

Je suis nouveau dans R, mais j'ai créé de nombreux graphiques de corrélation avec des ensembles de données plus petits. Cependant, lorsque j'essaie de tracer un grand jeu de données (2 Go +), je peux très bien produire le tracé, mais la légende ne s'affiche pas. Aucun conseil? 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(): les marges des chiffres sont trop grandes

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

Je soupçonne que le problème est que la petite région de figure 2 créée par votre appel layout() n’est pas assez grande pour contenir uniquement les marges par défaut, sans parler d’un tracé.

Avant la ligne à l'origine du problème, essayez:

par(mar = rep(2, 4))

puis trace la deuxième image

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

Vous aurez besoin de jouer avec la taille des marges sur l'appel par() que je montre pour bien comprendre. Vous devrez peut-être également augmenter la taille du périphérique sur lequel vous tracez.

Un dernier conseil, enregistrez les valeurs par défaut de par() avant de les modifier. Modifiez donc votre appel par() en:

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

puis à la fin du tracé faire

par(op)
73
Gavin Simpson

Cette erreur peut se produire dans Rstudio simplement parce que votre volet "Parcelles" est à peine trop petit. Essayez d’agrandir vos "Fichiers, Plots, Packages, Aide, Visualiseur" et voyez si cela aide!

132
Steve Pitchers

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

 enter image description here

58
Justas

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

17
Janac Meena

Cela arrive 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() 
16
jobligado

Vérifiez si votre objet est une liste ou un vecteur. Pour ce faire, tapez is.list(yourobject). Si cela est vrai, essayez de le renommer x<-unlist(yourobject). Cela en fera un vecteur que vous pourrez tracer. 

9
Gina-Maria

 enter image description here

Il suffit de zoomer sur cette zone si vous utilisez RStudio.

5
vkalit

J'ai eu cette erreur lorsque j'essayais de tracer des données de grandes dimensions. Si c'est ce qui se passe avec vous, essayez une mise à l'échelle multidimensionnelle: http://www.statmethods.net/advstats/mds.html

2
Olga Mu

J'ai eu du mal avec cette erreur pendant des semaines (en utilisant RStudio). J'ai essayé de déplacer la fenêtre de l'intrigue plus grande et plus petite, mais cela n'a pas toujours aidé. Lorsque j'ai déplacé (déplacé) l'application sur mon plus grand moniteur, le problème a disparu! J'étais abasourdi ... tellement d'heures perdues ... je savais que mon code était correct ...

2
Liz

J'ai trouvé cette erreur aujourd'hui. Au départ, j'essayais de le sortir dans un fichier .jpeg avec une largeur et une hauteur faibles.

jpeg("method1_test.jpg", width=900, height=900, res=40)

Plus tard, j'ai augmenté la largeur et la hauteur pour: 

jpeg("method1_test.jpg", width=1900, height=1900, res=40)

L'erreur n'était pas là. :)

Vous pouvez également jouer avec la résolution. Si la résolution est élevée, vous aurez besoin de plus de largeur et de hauteur.

0
jaikamal

J'ai trouvé la même erreur aujourd'hui. J'ai essayé le bouton "Effacer tous les tracés", mais il me donnait la même erreur. Ensuite, cette astuce a fonctionné pour moi, Essayez d’augmenter la zone de tracé en faisant glisser. Cela vous aidera à coup sûr.

0
Dhruv Panchal

Je viens d'utiliser la commande Effacer toutes les parcelles, puis à nouveau donner la commande de parcelle et c'était utile

0
Nirmal Kumar

Le canevas RStudio Plots limite la largeur et les hauteurs du tracé. Toutefois, si vous créez votre tracé à partir de Rmarkdown morceau de code, cela fonctionne sans limitation du champ de la zone de dessin, car la zone de traçage est définie en fonction du format de papier.

Par exemple:

    ```{r}
#inside of code chunk in Rmarkdown
        grid <- par(mfrow=c(4, 5))
        plot(faithful, main="Faithful eruptions")
        plot(large.islands, main="Islands", ylab="Area")
        ...
        par(grid)
    ```
0
Suat Atan PhD