2016-07-21 4 views
4

Я сделал приложение RShiny с сюжетом, используя ggplot.R: добавить среднюю строку к существующему сюжету

Теперь я хочу добавить среднюю строку к существующему сюжету.

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

Я попытался добавить:

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

или:

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

, но ничего не происходит :( я не понимаю, особенно для функции "линии"

.

Спасибо за ваш ответ ...

+0

Добро пожаловать в SO. Пожалуйста, прочитайте [как предоставить минимальные воспроизводимые примеры в R] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#answer-5963610). Затем отредактируйте и улучшите его соответствующим образом. Хороший пост обычно обеспечивает минимальные входные данные, желаемый результат и что было проверено - готов к копированию-вставке. Когда я запускаю ваш код, я получаю «объекты», которые не найдены «donnees». Пожалуйста, укажите данные + необходимые библиотеки и т. Д. Кроме того, я не думаю, что здесь нужен блестящий контекст («минимальный пример»). – lukeA

+0

Не имеет значения, используете ли вы ggplot внутри R или Shiny. Google для этого с помощью 'ggplot' и' line', и вы найдете помощь, например http://www.sthda.com/english/wiki/ggplot2-add-straight-lines-to-a-plot-horizontal-vertical- и-регрессионные линии – Jimbou

ответ

3

Когда вы говорите среднюю строку, я предполагаю, что вы хотите построить линию, которая представляет среднее значение Y (Indcatotvalue). Для этого необходимо использовать geom_hline(), которые Участки под Застройку горизонтальные линии на графике:

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

Which с номерами примеров вы дали, даст вам сюжет, который выглядит следующим образом:

enter image description here

+0

Большое спасибо за ваш ответ @Simon. На самом деле, мне хотелось бы, чтобы в этом примере были представлены все средние точки (1.5, 3.5, 5.5, 7.5, 9.5). Линия будет представлена ​​((1, 1.5), (2, 3.5), (3, 5.5), (4, 7.5), (5, 9.5)) для пар (x, y) – Flo

+0

Если вы также используя это решение, но он не работает, используйте следующий фрагмент кода 'ggplot (data = df, aes_q (x = datetime, y = Indcatotvalue)) + geom_line() + geom_hline (aes (yintercept = mean (Indcatotvalue)) , color = "blue") ' – Kots

Смежные вопросы