web-dev-qa-db-fra.com

R: ajoute une ligne moyenne à une parcelle existante

J'ai fait une application RShiny avec un complot en utilisant ggplot.

Maintenant, je veux ajouter une ligne moyenne au tracé existant.

library(ggplot2)

A <- c(1:10)
B <- c(1,1,2,2,3,3,4,4,5,5)

donnees <- data.frame(A,B) 
datetime<-donnees[,2]
Indcatotvalue<-donnees[,1]
df<-donnees

mn<-tapply(donnees[,1],donnees[,2],mean)
moyenne <- data.frame(template=names(mn),mean=mn)

ggplot(data=df,
   aes_q(x=datetime,
         y=Indcatotvalue)) + geom_line() 

J'ai essayé d'ajouter:

geom_line(aes(y = moyenne[,2], colour = "blue"))

ou :

lines(moyenne[,1],moyenne[,2],col="blue")

mais rien ne se passe :( Je ne comprends pas spécialement pour la fonction "lignes".

Merci pour votre réponse...

5
Flo

Lorsque vous parlez de ligne moyenne, je suppose que vous souhaitez tracer une ligne qui représente la valeur moyenne de Y (Indcatotvalue). Pour cela, vous voulez utiliser geom_hline() qui trace des lignes horizontales sur votre graphique:

ggplot(data=df,aes_q(x=datetime,y=Indcatotvalue)) + geom_line() + geom_hline(yintercept = mean(Indcatotvalue), color="blue")

Avec les exemples que vous avez donnés, vous obtiendrez un graphique ressemblant à ceci:

 enter image description here

7
Simon

J'ai trouvé la réponse dans cette page: 

groups.google.com/forum/#!topic/ggplot2/vd5n1jR9k40

La fonction stat_summary est parfaite ici.

1
Flo