Erreur dans plot.new (): marges de la figure trop grandes, nuage de points

109

J'ai cherché une solution dans différentes questions et j'ai essayé ce qui a été suggéré, mais je n'ai pas trouvé de solution pour que cela fonctionne.

Chaque fois que je veux exécuter ce code, il dit toujours:

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

et je ne sais pas comment y remédier. Voici mon code:

par(mfcol=c(5,3))
hist(RtBio, main="Histograma de Bio Pappel")
boxplot(RtBio, main="Diagrama de Caja de Bio Pappel")
stem(RtBio)
plot(RtBio, main="Gráfica de Dispersión")

hist(RtAlsea, main="Histograma de Alsea")
boxplot(Alsea, main="Diagrama de caja de Alsea")
stem(RtAlsea)
plot(RtTelev, main="Gráfica de distribución de Alsea")

hist(RtTelev, main="Histograma de Televisa")
boxplot(telev, main="Diagrama de Caja de Televisa")
stem(Telev)
plot(Telev, main="Gráfica de dispersión de Televisa")

hist(RtWalmex, main="Histograma de Walmex")
boxplot(RtWalmex, main="Diagrama de caja de Walmex")
stem(RtWalmex)
plot(RtWalmex, main="Gráfica de dispersión de Walmex")

hist(RtIca, main="Histograma de Ica")
boxplot(RtIca, main="Gráfica de caja de Ica")
stem(RtIca)
plot(RtIca, main="Gráfica de dispersión de Ica")

Que puis-je faire?

user3530361
la source
2
Les marges semblent trop importantes pour votre image. Cela peut arriver si vous avez une petite fenêtre de tracé. Dans tous les cas, votre description est insuffisante pour diagnostiquer le problème. Nous pourrions utiliser un exemple reproductible ou une capture d'écran de votre session R avec la fenêtre de tracé.
Roman Luštrik
Dans mon cas, cela a aidé à déboguer avec un petit sous-ensemble de données qui devaient être tracées comme plot(df[1,1:3], df2[1,1:3])- et puis j'ai réalisé que ce que je voulais vraiment faire était de plot(unlist(df[1,1:3]), unlist(df2[1,1:3]))voir aussi: stackoverflow.com/a/17074060/6018688
fabianegli

Réponses:

164

Chaque fois que vous créez des graphiques, vous pouvez obtenir cette erreur - " Error in plot.new() : figure margins too large". Pour éviter de telles erreurs, vous pouvez d'abord vérifier la par("mar")sortie. Vous devriez recevoir:

[1] 5.1 4.1 4.1 2.1

Pour changer cela, écrivez:

par(mar=c(1,1,1,1))

Cela devrait corriger l'erreur. Sinon, vous pouvez modifier les valeurs en conséquence.

J'espère que cela fonctionne pour toi.

Invité R
la source
2
comment savoir exactement quelles valeurs se trouvent à l'intérieur des marges? Et pourquoi dites-vous que je devrais obtenir [1] 5.1 4.1 4.1 2.1 mais alors vous me dites de le changer en tous les 1?
Herman Toothrot
2
J'ai rencontré le même problème avec RStudio, et quand je suis entré, par("mar")j'ai récupéré la même chaîne exacte, [1] 5.1 4.1 4.1 2.1donc je suis entré, par(mar=c(1,1,1,1))mais plot () ne tracerait rien, j'ai donc dû fermer RStudio et le terminal. Après la réouverture de RStudio, il était revenu à la normale.
noobninja
2
Vous rencontrez également le même problème dans R Markdown dans RStudio. Cependant, ni la solution de Guest R ni le redémarrage de @noobninja ne l'ont corrigé pour moi.
SC.
Vous obtenez cette erreur en raison d'un problème de disposition de l'interface utilisateur RStudio, et non d'un problème avec le code. La deuxième réponse l'a corrigé pour moi.
Nicole Sullivan
1
@Nicole Sullivan J'ai eu cette erreur également sans RStudio. J'ai fait comme décrit et ça marche. Merci @djhurio!
Gwang-Jin Kim le
106

Cela peut se produire lorsque votre panneau de tracé dans RStudio est trop petit pour les marges du tracé que vous essayez de créer. Essayez de le développer, puis exécutez à nouveau votre code.

L'interface utilisateur de RStudio provoque une erreur lorsque le panneau de tracé est trop petit pour afficher le graphique: RStudio avec le panneau de tracé trop petit

Le simple développement du panneau de tracé corrige le bogue et affiche le graphique: RStudio avec le panneau de tracé développé

Csislander
la source
5
Cela fonctionne en effet .. il suffit d'agrandir la zone de l'intrigue
Jiapeng Zhang
3
Oui, le redimensionnement des panneaux dans RStudio fonctionne. Il s'agit d'un bogue RStudio causé lorsque vous réduisez le côté droit de l'interface utilisateur en faisant glisser le panneau de tracé fermé.
Nicole Sullivan
cela fonctionne réellement dans la majorité des cas. il y a une petite minorité de cas où les marges sont en effet si petites que même si vous maximisez cette fenêtre, vous n'avez pas de solution à ce problème
Dimitrios Zacharatos
27

Invoquer dev.off()pour que RStudio ouvre un nouveau périphérique graphique avec les paramètres par défaut a fonctionné pour moi. HTH.

PGreen
la source
1
Pourriez-vous expliquer comment procéder?
Swift Arrow le
20

Si vous obtenez ce message dans RStudio, cliquez sur la figure 'balai' "Effacer tous les tracés" dans l'onglet Tracés et essayez à nouveau plot ().

De plus, exécutez la commande

graphics.off()
Prakhar Agarwal
la source
11
écrire ces trois lignesgraphics.off() par("mar") par(mar=c(1,1,1,1))
Hiren
6

Effacez simplement les graphiques et essayez à nouveau d'exécuter le code ... Cela a fonctionné pour moi

Shravya Mutyapu
la source
1

Juste un petit mot. Parfois, cette erreur de «marge» se produit parce que vous souhaitez enregistrer une figure haute résolution (par exemple dpi = 300ou res = 300) dans R.
Dans ce cas, ce que vous devez faire est de spécifier la largeur et la hauteur . (Btw, ggsave()ne nécessite pas cela.)

Cela provoque l'erreur de marge:

# eg. for tiff()
par(mar=c(1,1,1,1))
tiff(filename =  "qq.tiff",
     res = 300,                                                 # the margin error.
     compression = c( "lzw") )
# qq plot for genome wide association study (just an example)
qqman::qq(df$rawp, main = "Q-Q plot of GWAS p-values", cex = .3)
dev.off()

Cela corrigera l'erreur de marge:

# eg. for tiff()
par(mar=c(1,1,1,1))
tiff(filename =  "qq.tiff",
     res = 300,                                                 # the margin error.
     width = 5, height = 4, units = 'in',                       # fixed
     compression = c( "lzw") )
# qq plot for genome wide association study (just an example)
qqman::qq(df$rawp, main = "Q-Q plot of GWAS p-values", cex = .3)
dev.off()
Guannan Shen
la source