Como combinar 2 plots (ggplot) em uma plot?

Usando R, é possível colocar 2 ggplot juntos (isto é, no mesmo enredo)? Eu gostaria de mostrar uma tendência a partir de dois frameworks de dados diferentes e, em vez de colocá-los um ao lado do outro, gostaria de integrá-los em um único enredo e apenas mudar a cor de um deles (o ponto preto).

Para ser mais específico, tenho os seguintes 2 visuais:

ggplot(visual1, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth(fill="blue", colour="darkblue", size=1) 

e

 ggplot(visual2, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth(fill="red", colour="red", size=1) 

Eles se parecem com isso (ambos têm pontos pretos e eu preciso mudar um deles para algo diferente):

insira a descrição da imagem aqui

e

insira a descrição da imagem aqui

Criar uma única plotagem combinada com sua configuração de dados atual seria algo como isto

 p <- ggplot() + # blue plot geom_point(data=visual1, aes(x=ISSUE_DATE, y=COUNTED)) + geom_smooth(data=visual1, aes(x=ISSUE_DATE, y=COUNTED), fill="blue", colour="darkblue", size=1) + # red plot geom_point(data=visual2, aes(x=ISSUE_DATE, y=COUNTED)) + geom_smooth(data=visual2, aes(x=ISSUE_DATE, y=COUNTED), fill="red", colour="red", size=1) 

no entanto, se você pudesse combinar os conjuntos de dados antes de plotar, então o ggplot lhe dará automaticamente uma legenda e, em geral, o código parecerá um pouco mais limpo

 visual1$group <- 1 visual2$group <- 2 visual12 <- rbind(visual1, visual2) p <- ggplot(visual12, aes(x=ISSUE_DATE, y=COUNTED, group=group, col=group, fill=group)) + geom_point() + geom_smooth(size=1) 

Dados fictícios (você deve fornecer isso para nós)

 visual1 = data.frame(ISSUE_DATE=runif(100,2006,2008),COUNTED=runif(100,0,50)) visual2 = data.frame(ISSUE_DATE=runif(100,2006,2008),COUNTED=runif(100,0,50)) 

combinar:

 visuals = rbind(visual1,visual2) visuals$vis=c(rep("visual1",100),rep("visual2",100)) # 100 points of each flavour 

Agora faça:

  ggplot(visuals, aes(ISSUE_DATE,COUNTED,group=vis,col=vis)) + geom_point() + geom_smooth() 

e ajustar colors etc a gosto.

insira a descrição da imagem aqui

Apenas combine-os. Eu acho que isso deve funcionar, mas não foi testado:

 p <- ggplot(visual1, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth(fill="blue", colour="darkblue", size=1) p <- p + geom_point(data=visual2, aes(ISSUE_DATE,COUNTED)) + geom_smooth(data=visual2, fill="red", colour="red", size=1) print(p)