2013-05-07 18 views
16

(ich lerne immer noch, wie Bilder in R zu handhaben, das ist eine Art Fortsetzung von rpart package: Save Decision Tree to PNG)R: Plotten Entscheidungsbaum Etiketten verlassen Text abgeschnitten

Ich versuche, einen Entscheidungsbaum Grundstück aus zu retten rpart in PNG-Form, anstelle des bereitgestellten Postscript. Mein Code sieht so aus:

png("tree.png", width=1000, height=800, antialias="cleartype") 
plot(fit, uniform=TRUE, 
    main="Classification Tree") 
text(fit, use.n=TRUE, all=TRUE, cex=.8) 
dev.off() 

aber schneidet ein wenig der Etiketten für die Randknoten auf beiden Seiten ab. das ist kein Problem in dem ursprünglichen post Bild, das ich in Png umgewandelt habe, nur um zu überprüfen. Ich habe versucht, beide oma und mar Einstellungen in par, die als Lösungen für Label/Text Probleme empfohlen wurden, und beide hinzugefügt weißer Raum um das Bild, aber nicht mehr von den Etiketten. Gibt es eine Möglichkeit, den Text anzupassen?

+3

Versuchen Sie, die Dokumentation '' plot.rpart' 'zu lesen und achten Sie besonders auf das Argument 'margin'. – joran

+0

Ah, ich wusste nicht, dass es so viele Möglichkeiten gibt, Ränder zu setzen. Vielen Dank! – rhae66

Antwort

16

Das Paket rpart.plot zeichnet R-Teilebäume auf und kümmert sich automatisch um dieses Problem.

+2

Dies. Margen sind nicht das einzige Problem. Manchmal schneidet das Diagramm Textbeschriftungen willkürlich ab. –

5

Der Standard-Rand ist 0. Wenn also Ihr Text aus einem Satz von Wörtern oder nur aus einem langen Wort besteht, versuchen Sie, einen größeren Spielraum in den Plot-Aufruf zu legen. Beispiel:

plot(fit, uniform=TRUE,margin=0.2) 
text(fit, use.n=TRUE, all=TRUE, cex=.8) 

Alternativ können Sie die Schriftgröße für Text anpassen, indem Sie cex im Textruf ändern. Zum Beispiel

plot(fit, uniform=TRUE) 
text(fit,use.n=TRUE, all=TRUE, cex=.7) 

Natürlich können Sie sowohl mar in Plot Anruf und CEX in Text Anruf einstellen zu bekommen, was Sie wollen.

1

Auf rpart Mann, bei rpart() Beispiele der Autor gibt die Lösung, stellen Sie Par Optionen mit XPD = NA:

par (mfrow = c (1,2), XPD = NA) # sonst auf einige Geräte der Text ist abgeschnitten

+0

Einfache Lösung. Es hat mit meinen Daten funktioniert. – JABalbuena