r - legends - ggplot2: ajusta el tamaño del símbolo en leyendas
guides ggplot2 (3)
Deberías usar:
theme(legend.key.size = unit(3,"line"))
¿Cómo debo cambiar el tamaño de los símbolos en las leyendas? Revisé el documento del theme
pero no encontré respuesta.
Aquí hay un ejemplo:
library(ggplot2);library(grid)
set.seed(1000)
x <- 1:6
mu <- sin(x)
observed <- mu + rnorm(length(x), 0, 0.5*sd(mu))
data <- data.frame(
t=rep(x, 2),
value=c(mu, observed) - min(mu, observed) + 0.5,
class = rep(c("mu", "observed"), each=length(x)))
mu <- data$value[1:length(x)]
observed <- data$value[1:length(x) + length(x)]
mu.min <- mu - 3 * 0.5 * sd(mu)
mu.max <- mu + 3 * 0.5 * sd(mu)
g <- ggplot(data=data)
g <- g + geom_point(aes(x=value, y=t, shape=class, size=24)) + scale_size(guide="none")
g <- g + scale_shape(name="", labels=expression(paste(S[u](t), ", the observation at time ", t), paste(mu[u](t), ", the mean of ", tilde(S)[u](t), " ")))
stat_function.color <- gray(0.5)
g <- g + geom_segment(aes(y=1:6, yend=1:6, x=mu.min, xend=mu.max, linetype="2", alpha = 1), color=stat_function.color) + scale_alpha(guide="none") + scale_linetype(name= "", labels=expression(paste("probability density function (pdf) of ", tilde(S)[u], " at time ", t)))
for(i in 1:length(x)) {
g <- g + stat_function(fun=function(x, i) {
ifelse( x <= mu.max[i] & x >= mu.min[i], dnorm(x, mu[i], sd(mu)) + i, NA)
}, color=stat_function.color, args=list(i=i))
}
background.color <- gray(0.75)
g <- g + theme(
axis.text=element_blank(),
title=element_text(size=rel(1.5)),
legend.text=element_text(size=rel(1.5)),
legend.position="top",
legend.direction="vertical",
# legend.key.size = unit(2, "cm"),
panel.background=element_rect(fill=background.color),
panel.grid.major=element_line(color=background.color),
panel.grid.minor=element_line(color=background.color)
) + coord_flip()
plot(g)
La respuesta de Marius no funcionó para mí a partir de la versión R 3.2.2. Aún puede llamar a guide_legend()
con el mismo argumento override.eas
pero deberá especificar el color
lugar de la shape
en la función contenedora.
Entonces, si está ejecutando una versión posterior de R, intente esto en su lugar:
g + guides(color = guide_legend(override.aes = list(size=5)))
Puede realizar estos tipos de cambios manualmente usando el argumento override.aes
para guide_legend()
:
g <- g + guides(shape = guide_legend(override.aes = list(size = 5)))
print(g)