Saltar al contenido

Trazado de varias series de tiempo en el mismo gráfico usando ggplot()

Queremos compartir contigo la mejor solución que descubrimos en internet. Nosotros deseamos que te sea de ayuda y si deseas comentarnos alguna mejora hazlo con libertad.

Solución:

ggplot le permite tener múltiples capas, y eso es lo que debe aprovechar aquí.

En el diagrama creado a continuación, puede ver que hay dos geom_line declaraciones que golpean cada uno de sus conjuntos de datos y los trazan juntos en un gráfico. Puede ampliar esa lógica si desea agregar cualquier otro conjunto de datos, gráfico o incluso características del gráfico, como las etiquetas de los ejes.

library(ggplot2)

jobsAFAM1 <- data.frame(
  data_date = runif(5,1,100),
  Percent.Change = runif(5,1,100)
)

jobsAFAM2 <- data.frame(
  data_date = runif(5,1,100),
  Percent.Change = runif(5,1,100)
)

ggplot() + 
  geom_line(data = jobsAFAM1, aes(x = data_date, y = Percent.Change), color = "red") +
  geom_line(data = jobsAFAM2, aes(x = data_date, y = Percent.Change), color = "blue") +
  xlab('data_date') +
  ylab('percent.change')

Si ambos marcos de datos tienen los mismos nombres de columna, debe agregar un marco de datos dentro ggplot() llama y también nombra los valores x e y dentro aes() de ggplot() llamar. Luego agrega primero geom_line() para la primera línea y agregar la segunda geom_line() llamar con data=df2 (donde df2 es su segundo marco de datos). Si necesita tener líneas en diferentes colores, agregue color= y nombre para cada línea dentro aes() de cada geom_line().

df1<-data.frame(x=1:10,y=rnorm(10))
df2<-data.frame(x=1:10,y=rnorm(10))

ggplot(df1,aes(x,y))+geom_line(aes(color="First line"))+
  geom_line(data=df2,aes(color="Second line"))+
  labs(color="Legend text")

ingrese la descripción de la imagen aquí

prefiero usar el ggfortify biblioteca. Es un ggplot2 contenedor que reconoce el tipo de objeto dentro de la función de trazado automático y elige los mejores métodos ggplot para trazar. Al menos no tengo que recordar la sintaxis de ggplot2.

library(ggfortify)
ts1 <- 1:100
ts2 <- 1:100*0.8
autoplot(ts( cbind(ts1, ts2)  , start = c(2010,5), frequency = 12 ),
         facets = FALSE)

Gráfico

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *