Quiero combinar dos ggplots, de dos data.frames diferentes, en un solo gráfico. A continuación encontrará el código. Quiero combinar la parcela 1 y 2 o las parcelas 3 y 4.
df1 <- data.frame(p=c(10,8,7,3,2,6,7,8),
v=c(100,300,150,400,450,250,150,400))
df2 <- data.frame(p=c(10,8,6,4), v=c(150,250,350,400))
plot1 <- qplot(df1$v, df1$p)
plot2 <- qplot(df2$v, df2$p, geom="step")
plot3 <- ggplot(df1, aes(v, p)) + geom_point()
plot4 <- ggplot(df2, aes(v, p)) + geom_step()
Esto debe ser muy fácil de hacer, pero de alguna manera no puedo hacerlo funcionar. Gracias por tu tiempo.
ggplot()
sintaxis, puede especificar los datos que se utilizarán para cada capa individual, por ejemplogeom_step(data=df2)
Respuestas:
Como dijo Baptiste, debe especificar el argumento de datos en el nivel geom. Ya sea
#df1 is the default dataset for all geoms (plot1 <- ggplot(df1, aes(v, p)) + geom_point() + geom_step(data = df2) )
o
#No default; data explicitly specified for each geom (plot2 <- ggplot(NULL, aes(v, p)) + geom_point(data = df1) + geom_step(data = df2) )
fuente
(my_variable <- 1:5)
es una versión más limpia demy_variable <- 1:5; my_variable
.La única solución funcional para mí fue definir el objeto de datos en geom_line en lugar del objeto base, ggplot.
Me gusta esto:
ggplot() + geom_line(data=Data1, aes(x=A, y=B), color='green') + geom_line(data=Data2, aes(x=C, y=D), color='red')
en vez de
ggplot(data=Data1, aes(x=A, y=B), color='green') + geom_line() + geom_line(data=Data2, aes(x=C, y=D), color='red')
Más info aquí
fuente
Puede tomar este truco para usar solo qplot. Utilice variable interna
$mapping
. Incluso puede agregar color = a sus gráficos para que esto también se incluya en el mapeo, y luego sus gráficos se combinarán con la leyenda y los colores automáticamente.cpu_metric2 <- qplot(y=Y2,x=X1) cpu_metric1 <- qplot(y=Y1, x=X1, xlab="Time", ylab="%") combined_cpu_plot <- cpu_metric1 + geom_line() + geom_point(mapping=cpu_metric2$mapping)+ geom_line(mapping=cpu_metric2$mapping)
fuente
qplot(y=..., x=..., colour=...)
, luego agrega color adentrogeom_line(mapping..., colour=...)