2010-12-10 7 views
15

In R, traf ich einen Lauffehler wie folgt:„Fehler in plot.new(): Abbildung Ränder zu groß“

> png("p3_sa_para.png", 4, 2) 
> par(mfrow=c(1,2)) 
> plot(c(1:10), ylab="Beta",xlab="Iteration") 
Error in plot.new() : figure margins too large 
> plot(c(1:10), ylab="Gamma",xlab="Iteration") 
Error in plot.new() : figure margins too large 
> dev.off() 
X11cairo 
     2 

Ich habe bereits die Bildgröße klein gemacht werden 4 von 2, warum es beklagt sich noch immer "zu große Margen"? Wie kann ich dieses Problem mit PNG lösen?

Es ist seltsam, dass, wenn ich Png zu PDF ändern, dann wird es funktionieren. Ich frage mich auch warum?

Danke und Gruß!

+6

Sie würden sich eine Menge Ärger ersparen, wenn Sie die Hilfe für die R-Funktionen, die Sie verwenden, lesen. Was "Breite" und "Höhe" sind auf einem 'Png' Gerät ist eindeutig in'? Png' –

+5

@Gavin Ich stimme nicht zu, ich stieß auf genaues Problem und das erste, was ich suchte, ist Hilfe für Plot und dann Hilfe für Par , und nach allen nutzlosen Informationen, ging ich für png zuletzt. Hilfe ist nur dann gut, wenn Sie wissen, wo Sie hinschauen sollten. –

+2

@Tg In einer Situation, in der ein Fehler auftritt, ist es logisch, den Fehler zu beheben. Wenn die Handlung ohne 'png()' funktioniert, wissen wir, dass das Problem bei 'png()' liegt. Wenn das Entfernen von 'png()' keinen Unterschied macht, haben wir den Umfang des Problems eingeschränkt. Es sollte nicht wirklich nötig sein, beim Lesen von mehreren Hilfedateien usw. nach solchen Dingen zu suchen, * wenn * Sie einen logischen Ansatz zur Bearbeitung des Problems wählen, das Problem lokalisieren und dann die entsprechende Hilfedatei lesen. Stimmen Sie der Notwendigkeit zu, die Hilfe oder etwas anderes zu lesen? –

Antwort

23

Die png() Funktion verwendet Pixel nicht Zoll, versucht so etwas wie

png("p3_sa_para.png", 640, 480) 

Und Ihre zweite Frage zu beantworten, ja, pdf() verwendet Zoll, da ein Vektor-Grafikformat keine Ahnung von Pixeln hat. Die Funktionen help(png) und help(pdf) sind deine Freunde.

7

Das Problem kann einfach durch die Verwendung einer bestimmten IDE entstehen. Ich habe Rstudio benutzt, und ich habe eine Menge Fehler bekommen. Mein exakt gleicher Code funktionierte in der Konsole gut.

3

Dies ist ein häufiges Problem für das Plotten speziell, wenn Sie IDE verwenden, die einen Platz hat für die Erzeugung und man die Handlung zeigt, dachte, es ist ein allgemeines Problem und es gibt eine Logik dahinter: , wenn Sie R sagen plotten etwas, R schaue zuerst auf die Daten und dann auf den Bereich, den es zur Verfügung hat, damit es das Plotten tun kann.

Die png() und ähnliche Befehle:

In Ihrem Fall sind Sie auf der Handlung einen 4 mal 2 Pixel-Bereich es zu zeichnen, so dass Sie es durch die Erhöhung der Fläche in einer Größe lösen können, die passen deine Handlung. (Als Dirk Eddelbuettel mentioned)

Bei IDE

Das ist viel einfacher in den meisten Fällen nur die Plotbereiches erhöhen, indem Sie die Ränder ziehen und dann den Code erneut ausführen (schließen Sie alle par() Wenn Sie schon einmal geöffnet haben und einen neuen erstellen) enter image description here