tutorial tamaño poner leyenda ggplot español como change r ggplot2

tamaño - ggplot2 aumenta el espacio entre las teclas de leyenda



leyenda en ggplot2 (2)

¿Cómo puedo aumentar el espacio entre las claves de la leyenda de la trama ggplot2 ?

library(ggplot2) ggplot(aes(mpg, wt, colour = factor(cyl)), , data = mtcars) + geom_point() + theme(legend.direction = "horizontal", legend.position = "bottom") + guides(color = guide_legend(nrow=2))

Estoy buscando una opción ggplot2 que agregue un tipo de ajuste vertical entre (clave 4 y clave 6) en el diagrama de arriba? ¿Debo crear una clave de leyenda personalizada?

PD: Quiero aumentar el espacio en blanco entre cuadros que no estén entre etiquetas.

la trama deseada es:

NOTA: No, la pregunta no está duplicada de la otra pregunta. Queremos agregar un espacio vertical entre los elementos que ya están en varias filas. En la otra pregunta, tenemos una leyenda de 1 fila y queremos agregar espacios (horizontales) entre los elementos.


Aquí una solución usando gtable . Básicamente estoy extrayendo la tabla grobs de leyenda y agrego una fila en la tabla de leyenda.

library(gtable) library(grid) ## transform the ggplot to a grobs table p_table <- ggplot_gtable(ggplot_build(p)) ## extract legend leg <- which(sapply(p_table$grobs, function(x) x$name) == "guide-box") ## this is the tricky part ! ## add a row in the second position (pos=2) p_table$grobs[[leg]]$grobs[[1]] <- gtable_add_rows(p_table$grobs[[leg]]$grobs[[1]], unit(0.5, "line"), ## you can increase the height here pos=2) ## since I have 2 rows , I insert it in the middle plot(p_table)

PD: ¡No sé cómo forzar la mesa a una trama otra vez! tal vez alguien más puede ayudar aquí (solo estoy tramando y perdiendo la estructura del objeto)


Una solución alternativa (y probablemente más fácil) es usar legend.key y legend.key.size en la parte del theme de su código:

ggplot(data = mtcars, aes(mpg, wt, colour = factor(cyl))) + geom_point() + guides(color = guide_legend(nrow = 2)) + theme(legend.direction = ''horizontal'', legend.position = ''bottom'', legend.key = element_rect(size = 5), legend.key.size = unit(1.5, ''lines''))

esto da:

En caso de que llame a theme_bw o theme_classic antes de manipular la leyenda, debe establecer el color del rectángulo de la leyenda:

legend.key = element_rect(size = 5, color = ''white'') #or: color = NA