2015-03-30 3 views
1

У меня есть df, как показано ниже, и я хотел создать график временных рядов с использованием geom_line. Вот краткое изложение моих данных:Как я могу добавить точки в график geom_line в ggplot

summary(data.t.m) 
       sample side  time day   variable  value  
HA2015_E10AF.bam: 1 E:69 1  :12 F:72 nc.counts:138 Min. : 4.346 
HA2015_E10BF.bam: 1 W:69 2  :12 S:66     1st Qu.: 6.949 
HA2015_E10CF.bam: 1   3  :12       Median : 8.529 
HA2015_E11AF.bam: 1   4  :12       Mean : 9.085 
HA2015_E11AS.bam: 1   5  :12       3rd Qu.:10.501 
HA2015_E11BF.bam: 1   6  :12       Max. :23.047 
(Other)   :132   (Other):66           

Вот код для генерации строки участка:

plt <- ggplot(data.t.m, aes(time, value, group = side, colour = side)) 
plt <- plt + stat_summary(fun.y = "mean", geom="line", size = 2, position=position_dodge(0.95)) 
plt <- plt + stat_summary(fun.data="calc.sem", geom="errorbar") 

Участок, который генерируется как ниже ...

time_series_plot

Теперь мой вопрос: как добавить точки, соответствующие каждой точке времени на ggplot?

+1

Разве это не просто '+ geom_point()'? Можете ли вы разместить воспроизводимое подмножество данных с помощью dput()? или некоторые данные с случайным посевом. – smci

+0

Я попробовал 'geom_point()' by i получить несколько точек вместо одной точки .... – upendra

+0

Хорошо, сообщите нам, что неправильное изображение, если вы не можете отправить нам свой набор данных. – smci

ответ

3

Возможно, ваши очки скрыты под вашей линией, размер которой равен 2. Установка размера точки в geom_point на больший размер может решить вашу проблему. Ниже приведен пример, я смоделировал ваши данные для первой части временных рядов и для удобства оставил полосы ошибок.

данных Пример

df<-data.frame(time=as.factor(c(1,1,2,2,3,3,4,4,5,5)), value=as.numeric(c(7, 8, 9, 10, 10, 11, 10.5, 11.4, 10.9, 11.6)), side=as.factor(c("E","F","E","F","E","F","E","F","E","F"))) 

Ggplot

library(ggplot2) 
p<-ggplot(df, aes(time,value, group=side, colour=side)) + geom_line(size=1) 
p<-p+geom_point(size=4) 
p 

enter image description here

+0

вот что именно я хотел .... thnx – upendra

+0

У меня есть один вопрос. У меня есть три репликации для каждого образца, и когда я рисую их, я получаю три очка для каждой стороны и получаю 6 очков для обеих сторон за каждый момент времени. Есть ли функция для вычисления среднего и сем для этих трех точек и занести в нее как одну точку? – upendra

+1

Функция ddply в пакете plyr может быть использована для этого: 'newdf <- ddply (df,. (Time, side), summaryize, value = mean (value))'. Он вычисляет среднее значение как функцию времени и стороны. То же самое можно сделать и для стандартной ошибки. –

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