Je veux combiner deux ggplots, de deux data.frames différents, en un complot. Vous trouverez ci-dessous le code. Je veux combiner les parcelles 1 et 2 ou les parcelles 3 et 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()
Cela doit être très facile à faire, mais de toute façon, je ne peux pas le faire fonctionner. Merci pour votre temps.
Comme Baptiste l'a dit, vous devez spécifier l'argument de données au niveau de la géographie. Non plus
#df1 is the default dataset for all geoms
(plot1 <- ggplot(df1, aes(v, p)) +
geom_point() +
geom_step(data = df2)
)
ou
#No default; data explicitly specified for each geom
(plot2 <- ggplot(NULL, aes(v, p)) +
geom_point(data = df1) +
geom_step(data = df2)
)
La seule solution qui a fonctionné pour moi était de définir l'objet de données dans geom_line au lieu de l'objet de base, ggplot.
Comme ça:
ggplot() +
geom_line(data=Data1, aes(x=A, y=B), color='green') +
geom_line(data=Data2, aes(x=C, y=D), color='red')
au lieu de
ggplot(data=Data1, aes(x=A, y=B), color='green') +
geom_line() +
geom_line(data=Data2, aes(x=C, y=D), color='red')
Vous pouvez prendre cette astuce pour utiliser uniquement qplot. Utiliser la variable interne $mapping
. Vous pouvez même ajouter color = à vos tracés pour que cela soit également mis en correspondance, puis vos tracés combinés avec la légende et les couleurs automatiquement.
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)