¿Hay alguna forma de cambiar el espacio entre los elementos de la leyenda en ggplot2? Actualmente tengo
legend.position ="top"
que produce automáticamente una leyenda horizontal. Sin embargo, el espaciado de los elementos está muy cerca y me pregunto cómo espaciarlos más.
opts
está depreciado.Respuestas:
ggplot2 v3.0.0
publicado en julio de 2018 tiene opciones de trabajo para modificarlegend.spacing.x
,legend.spacing.y
ylegend.text
.Ejemplo: aumentar el espacio horizontal entre las claves de leyenda
Nota: Si solo desea expandir el espaciado a la derecha del texto de la leyenda, use
stringr::str_pad()
Ejemplo: mueva las etiquetas de las teclas de leyenda hacia la parte inferior y aumente el espaciado vertical
Ejemplo: para
scale_fill_xxx
&guide_colorbar
Para las leyendas verticales , la configuración
legend.key.size
solo aumenta el tamaño de las claves de leyenda, no el espacio vertical entre ellasPara aumentar la distancia entre las teclas de leyenda,
legend-draw.r
es necesario modificar la función. Consulte este número para obtener más información.fuente
Creo que la mejor opción es usar
guide_legend
dentro deguides
:Tenga en cuenta el uso de
default.unit
, no es necesario cargar elgrid
paquete.fuente
Una solución simple que utilizo para agregar espacio en leyendas horizontales, simplemente agregue espacios en las etiquetas (vea el extracto a continuación):
fuente
scale_fill_manual(values=values, labels=setNames(paste(labels, " "), entries))
.Ahora que
opts
está obsoleto en elggplot2
paquete, la funcióntheme
debe usarse en su lugar:fuente
Para agregar espacio entre las entradas en una leyenda, ajuste los márgenes del elemento del tema
legend.text
.Para agregar 30 puntos de espacio a la derecha de cada etiqueta de leyenda (puede ser útil para una leyenda horizontal):
Para agregar 30 puntos de espacio a la izquierda de cada etiqueta de leyenda (puede ser útil para una leyenda vertical):
por un
ggplot2
objetop
. Las palabras clave sonlegend.text
ymargin
.[Nota sobre la edición: cuando se publicó esta respuesta por primera vez, hubo un error. El error ahora se ha solucionado]
fuente
Parece que el mejor enfoque (en 2018) es usar
legend.key.size
debajo deltheme
objeto. (por ejemplo, ver aquí ).Esto es muy fácil si está utilizando
theme_bw()
:Sin embargo, esto no funciona tan bien de otra manera (por ejemplo, si necesita el fondo gris en su símbolo de leyenda):
Observe que los cuadrados blancos comienzan a bloquear el título de la leyenda (y eventualmente el gráfico en sí mismo si seguimos aumentando el valor).
No he encontrado una solución para solucionar el problema anterior ... ¡Avísame en los comentarios si tienes una idea y la actualizaré en consecuencia!
$layers
...fuente
legend.key
transparente:theme(legend.key = element_rect(size = 30,color=alpha("transparent",0)))
Del trabajo de Koshke en ggplot2 y su blog (blog de Koshke )
Escriba
theme_get()
en la consola para ver otros atributos de leyenda editables.fuente
Utilice cualquiera de estos
fuente