varias tutorial tiempo temporales superponer graficas ggplot español diarias r plot ggplot2

tutorial - superponer graficas en r ggplot



Trazar múltiples series de tiempo en la misma parcela usando ggplot() (5)

Soy bastante nuevo en R e intento trazar dos líneas de serie de tiempo simultáneamente (usando diferentes colores, por supuesto) haciendo uso de ggplot2.

Tengo 2 marcos de datos. el primero tiene columnas ''Porcentaje de cambio para X'' y ''Fecha''. El segundo tiene columnas ''Porcentaje de cambio para Y'' y ''Fecha'' también, es decir, ambos tienen una columna ''Fecha'' con los mismos valores, mientras que las columnas ''Cambio porcentual'' tienen valores diferentes.

Me gustaría trazar las columnas ''Cambio porcentual'' contra ''Fecha'' (común a ambas) usando ggplot2 en una sola gráfica.

Los ejemplos que encontré en línea hicieron uso del mismo marco de datos con diferentes variables para lograr esto, no he podido encontrar nada que haga uso de 2 marcos de datos para llegar a la trama. No quiero vincular los dos marcos de datos, quiero mantenerlos separados. Aquí está el código que estoy usando:

ggplot(jobsAFAM, aes(x=jobsAFAM$data_date, y=jobsAFAM$Percent.Change)) + geom_line() + xlab("") + ylab("")

Pero este código produce solo una línea y me gustaría agregar otra línea encima. Cualquier ayuda sería muy apreciada. TIA.


Prefiero usar la biblioteca ggfortify . Es un contenedor ggplot2 que reconoce el tipo de objeto dentro de la función autoplot 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)


Sé que esto es viejo, pero sigue siendo relevante. Puede aprovechar reshape2 :: melt para cambiar el marco de datos en una estructura más amigable para ggplot2.

Ventajas:

  • le permite trazar cualquier cantidad de líneas
  • cada línea con un color diferente
  • agrega una leyenda para cada línea
  • con solo una llamada a ggplot / geom_line

Desventaja:

  • se requiere un paquete adicional (reshape2)
  • la fusión no es tan intuitiva al principio

Por ejemplo:

jobsAFAM1 <- data.frame( data_date = seq.Date(from = as.Date(''2017-01-01''),by = ''day'', length.out = 100), Percent.Change = runif(5,1,100) ) jobsAFAM2 <- data.frame( data_date = seq.Date(from = as.Date(''2017-01-01''),by = ''day'', length.out = 100), Percent.Change = runif(5,1,100) ) jobsAFAM <- merge(jobsAFAM1, jobsAFAM2, by="data_date") jobsAFAMMelted <- reshape2::melt(jobsAFAM, id.var=''data_date'') ggplot(jobsAFAMMelted, aes(x=data_date, y=value, col=variable)) + geom_line()


Si ambos marcos de datos tienen los mismos nombres de columna, entonces debe agregar un marco de datos dentro de la llamada ggplot() y también nombrar los valores ggplot() llamada aes() de ggplot() . A continuación, agregue primero geom_line() para la primera línea y agregue la segunda llamada geom_line() con data=df2 (donde df2 es su segundo marco de datos). Si necesita líneas en diferentes colores, agregue color= y nombre para la línea eahc dentro de 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")


Una alternativa es vincular los marcos de datos y asignarles el tipo de variable que representan. Esto le permitirá usar el conjunto de datos completo de una manera más ordenada

library(ggplot2) library(dplyr) df1 <- data.frame(dates = 1:10,Variable = rnorm(mean = 0.5,10)) df2 <- data.frame(dates = 1:10,Variable = rnorm(mean = -0.5,10)) df3 <- df1 %>% mutate(Type = ''a'') %>% bind_rows(df2 %>% mutate(Type = ''b'')) ggplot(df3,aes(y = Variable,x = dates,color = Type)) + geom_line()


ggplot te permite tener varias capas, y eso es lo que debes aprovechar aquí.

En el diagrama creado a continuación, puede ver que hay dos instrucciones geom_line 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, trazado 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'')