2013-05-07 13 views
16

(Sto ancora imparando come gestire le immagini in R; questo è una sorta di continuazione di rpart package: Save Decision Tree to PNG)R: tramando decisionali etichette foglie degli alberi testo tagliato

Sto cercando di salvare una trama albero decisionale da rpart in forma PNG, invece del postScript fornito. Il mio codice è simile al seguente:

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() 

ma taglia un po 'delle etichette per i nodi di bordo su entrambi i lati. questo non è un problema in un'immagine originale post, che ho convertito in PNG solo per controllare. Ho provato ad utilizzare entrambe le impostazioni oma e mar in par, che sono state consigliate come soluzioni per problemi di etichetta/testo e hanno aggiunto uno spazio bianco attorno all'immagine ma non mostrano più le etichette. C'è un modo per inserire il testo?

+3

Prova a leggere la documentazione contenuta in '? plot.rpart' e presta particolare attenzione all'argomento' margin'. – joran

+0

Ah, non sapevo ci fossero abbastanza così tanti modi per impostare i margini. Grazie! – rhae66

risposta

16

il pacchetto rpart.plot alberi trame rpart e automaticamente si prende cura di questo problema.

+2

questo. I margini non sono l'unico problema. A volte la trama taglia arbitrariamente le etichette di testo. –

5

Il margine predefinito è 0. Quindi, se il testo è un insieme di parole o solo una parola lunga, provare a mettere più margine nella chiamata plot. Ad esempio,

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

In alternativa, è possibile regolare la dimensione del carattere del testo cambiando cex nella chiamata di testo. Ad esempio,

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

Naturalmente, è possibile regolare sia mar nella chiamata trama e CEX in call testo per ottenere quello che vuoi.

1

Su uomo rpart, a rpart() esempi l'autore dà la soluzione, impostare le opzioni di par con XPD = NA:

par (mfrow = c (1,2), XPD = NA) # altrimenti su alcuni dispositivi il testo è troncato

+0

Soluzione semplice. Ha funzionato con i miei dati. – JABalbuena