2016-07-21 10 views
4

Ich habe eine Anwendung RShiny mit einem Plot mit ggplot gemacht.R: eine durchschnittliche Linie zu einem vorhandenen Grundstück hinzufügen

Jetzt möchte ich eine durchschnittliche Zeile zum vorhandenen Grundstück hinzufügen.

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() 

Ich habe versucht, hinzuzufügen:

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

oder:

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

aber nichts passiert :( Ich verstehe nicht, besonders für die Funktion "Linien"

.

Vielen Dank für Ihre Antwort ...

+0

Willkommen bei SO. Bitte lesen Sie [wie man minimal reproduzierbare Beispiele in R zur Verfügung stellt] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#answer-5963610). Dann bearbeiten und verbessern Sie es entsprechend. Ein guter Beitrag liefert normalerweise nur minimale Eingabedaten, die gewünschte Ausgabe und was versucht wurde - bereit zum Kopieren-Einfügen-Ausführen. Wenn ich Ihren Code ausführen, bekomme ich "Objekt 'Donnees nicht gefunden". Bitte geben Sie Daten + benötigte Bibliotheken usw. an. Ich denke auch nicht, dass der glänzende Kontext hier benötigt wird ("minimales Beispiel"). – lukeA

+0

Es spielt keine Rolle, ob Sie ggplot in R oder Shiny verwenden. Google dafür mit 'ggplot' und' line' und Sie finden Hilfe wie http://www.sthda.com/english/wiki/ggplot2-add-straight-lines-to-a-plot-horizontal-vertical- und-Regression-Linien – Jimbou

Antwort

3

Wenn Sie eine Durchschnittslinie angeben, gehe ich davon aus, dass Sie eine Linie zeichnen möchten, die den Durchschnittswert von Y darstellt (Indcatotvalue). Dafür wollen Sie geom_hline() verwenden, die horizontalen Linien auf dem Diagramm Plots:

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

, die mit dem Beispiel Zahlen Sie gaben, werden Sie einen Plot, der das wie folgt aussieht:

enter image description here

+0

Vielen Dank für Ihre Antwort @Simon. Eigentlich möchte ich eine Linie, die alle Durchschnittspunkte (1.5, 3.5, 5.5, 7.5, 9.5) in diesem Beispiel darstellen würde. Die Linie würde durch ((1, 1.5), (2, 3.5), (3, 5.5), (4, 7.5), (5, 9.5)) für die Paare (x, y) – Flo

+0

dargestellt werden, falls Sie es sind Verwenden Sie auch diese Lösung, aber es funktioniert nicht, verwenden Sie das folgende Stück Code 'ggplot (Daten = df, aes_q (x = datetime, y = Indcatotvalue)) + geom_line() + geom_hline (aes (yintercept = Mittelwert (Indcatotvalue)) , Farbe = "blau") ' – Kots

Verwandte Themen