superposicion - superposición de pantalla lg k8
Cómo trazar un ctree grande() para evitar la superposición de nodos (2)
Cuando ctree()
resultado del árbol de decisiones de ctree()
del paquete party
, la fuente era demasiado grande y la caja también era demasiado grande. Se están superponiendo otros nodos.
¿Hay alguna manera de personalizar la salida de plot()
para que el cuadro y la fuente sean más pequeños?
La respuesta corta parece ser, no, no puede cambiar el tamaño de la fuente, pero hay otras buenas opciones.
Sé de tres soluciones posibles. Primero, puede cambiar otros parámetros en el gráfico para hacerlo más compacto. En segundo lugar, puede escribirlo en un archivo gráfico y ver ese archivo. Tercero, puede usar una implementación alternativa de ctree () en el paquete partykit, que es un paquete más nuevo de algunos de los mismos autores.
Ejemplo de gráfico predeterminado
library(party)
airq <- subset(airquality, !is.na(Ozone))
airct <- ctree(Ozone ~ ., data = airq,
controls = ctree_control(maxsurrogate = 3))
plot(airct) #default plot, some crowding with N hidden on leafs
Parcela simplificada
# simpler version of plot
plot(airct, type="simple", # no terminal plots
inner_panel=node_inner(airct,
abbreviate = TRUE, # short variable names
pval = FALSE, # no p-values
id = FALSE), # no id of node
terminal_panel=node_terminal(airct,
abbreviate = TRUE,
digits = 1, # few digits on numbers
fill = c("white"), # make box white not grey
id = FALSE)
)
Esto es algo mejor y uno podría mejorarlo aún más. Para averiguar estos detalles, originalmente hice la class(airct)
que devolvió "BinaryTree". Armado con esta información, empecé a leer ?plot.BinaryTree
Escribir en un archivo
Una segunda solución simple es escribir la trama en un archivo y luego ver el archivo. Es posible que deba jugar con la configuración para encontrar el mejor ajuste.
png("airct.png", res=80, height=800, width=1600)
plot(airct)
dev.off()
Parcela con paquete de partykit en su lugar
Finalmente, puede usar una reimplementación más reciente y aún no terminada del paquete de parte por parte de algunos de los mismos autores. En este punto (diciembre de 2012), la única función que han vuelto a hacer es ctree()
. Esta versión le permite cambiar el tamaño de fuente.
library(partykit)
airct <- ctree(Ozone ~ ., data = airq)
class(airct) # different class from before
# "constparty" "party"
plot(airct, gp = gpar(fontsize = 6), # font size changed to 6
inner_panel=node_inner,
ip_args=list(
abbreviate = TRUE,
id = FALSE)
)
Aquí he dejado las hojas en su configuración predeterminada porque, francamente, nunca he descubierto cómo hacer que funcione como quiero. Sospecho que esto tiene que ver con el hecho de que el paquete está incompleto (a partir de diciembre de 2012). Puede leer sobre el método de trazado que comienza con ?plot.party
Otra opción (que no cambia lo que desea, pero resuelve potencialmente el problema subyacente) es cambiar el tamaño de la figura, como aprendí en mi clase para mi tarea.
Reemplace la r en el siguiente:
{r}
con:
{r, fig.width=X, fig.height=Y}
donde X y Y deben ser reemplazados por números elegidos por usted, dependiendo de qué tamaño cree que funciona mejor.
Este sitio web , habla de hacer esto con más detalle y universalmente a lo largo del documento.