[R-es] Añadir leyenda a un gráfico con eje secundario en ggplot
Álvaro Hernández Vicente
@|v@rohv @end|ng |rom um@e@
Mie Feb 12 15:40:49 CET 2020
Hola, Raúl:
Lo de poner las líneas correspondientes lo tienes ya, solo que has
escrito "nueva" en lugar de "actual" que es como has llamado a esa variable.
Y si quieres poner una leyenda para el color de la línea lo puedes hacer
de dos formas: pasando el data.frame a formato largo ("actual" y
"propuesta" en una misma variable) o bien añadiéndola tú manualmente. No
está relacionada con tener un eje secundario.
En el primer caso puedes hacer:
resumen %>%
pivot_longer(cols = actual:propuesta, names_to = "Variable", values_to = "Valor") %>%
ggplot(aes(x = factor(ejex))) +
geom_col(data = resumen, aes(y = peso), fill = "yellow", alpha = 0.5) +
geom_line(aes(y = (Valor*10), color = Variable, group = Variable)) +
scale_y_continuous(sec.axis = sec_axis(~./10), name = "") +
labs(y = "")
Y para añadirla manualmente puedes hacer:
ggplot(resumen, aes(x = factor(ejex), group = 1)) + geom_col(aes(y =
peso), fill = "yellow", alpha = 0.5) + geom_line(aes(y = actual*10,
color = "Actual")) + geom_line(aes(y = propuesta*10, color =
"Propuesta")) + scale_y_continuous(sec.axis = sec_axis(~./10), name =
"") + scale_color_manual(values = c("Actual" = "red", "Propuesta" =
"blue"))
Un saludo
Álvaro
El 12/2/20 a las 14:55, Raúl Vaquerizo escribió:
> Hola,
>
> Me he dado cuenta que no soy capaz de añadir la leyenda a un gráfico
> con eje secundario en ggplot2. Os paso un ejemplo reproducible para
> ver si alguno puede ayudarme:
>
> ejex <- seq(1:20)
> peso <- rnorm(20,mean=1000,sd=300)
> actual <- rgamma(20,shape=seq(200,20, length.out = 20))
> propuesta <- actual + rnorm(20,3,3)
>
> resumen <- cbind.data.frame(ejex, peso, actual, propuesta)
>
> g2 <- ggplot(resumen, aes(x=factor(ejex))) +
> geom_col(aes(y=peso),fill="yellow",alpha=0.5) +
> geom_line(aes(y=actual*10), group=1, color="red") +
> geom_line(aes(y=nueva*10), group=1, color="blue") +
> scale_y_continuous(sec.axis = sec_axis(~./10), name="")
> g2
>
> Necesito poner las líneas correspondientes a las variables actual y
> propuesta. Nada más, pero tras varios intentos, exabruptos, scales y
> demás ggplot me está derrotando. Gracias.
>
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es