2017-06-21 203 views
0

我正在寻找随时间变化的网站时间平均值。我的数据集名为APRA,它有一个名为Post_Day的列,其中包含日期为POSIXct的列和名为Visit_Time_Per_Page_(Minutes)的列,这是一个num格式。如何绘制ggplot2中随时间变化的平均值R

当我键入:

ggplot(APRA,aes(Post_Day,mean(`Visit_Time_Per_Page_(Minutes)`)))+ 
    geom_line()+ 
    labs(title = "Time on Page over Time", x = "Date", y = "Time on Page (Minutes)") 

我得到这个回:

enter image description here

我后是日平均时间作图。

谢谢。

样本数据:

Post_Title Post_Day Visit_Time_Per_Page_(Minutes) 
Title 1  2016-05-15 4.7 
Title 2  2016-05-15 3.8 
Title 3  2016-05-15 5.3 
Title 4  2016-05-16 2.9 
Title 5  2016-05-17 5.0 
Title 6  2017-05-17 4.3 
Title 7  2017-05-17 4.7 
Title 8  2017-05-17 3.0 
Title 9  2016-05-18 2.9 
Title 10 2016-05-18 4.0 
Title 11 2016-05-19 6.1 
Title 12 2016-05-19 4.7 
Title 13 2016-05-19 8.0 
Title 14 2016-05-19 3.3 
+0

请提供一个可复制的数据示例'APRA'。 – www

+0

在ggplot的主要调用中,切换到'aes(Post_Day,\'Visit_Time_Per_Page_(Minutes)\')'。然后,而不是'geom_line',做'stat_summary(fun.y = mean,geom =“line”)''。 – eipi10

+0

@ycw我已经添加了示例数据。 @ eipi10这个工作,但我需要添加'geom_smooth()'这个图表,它看起来不太合适,使用你提供的最后一个帮助的解决方案。 – jceg316

回答

0

我通过改变从2017所有记录2016因为它更容易产生积作为例子改变了输入数据。

关键是要用stat_summary函数并指定函数和几何。

# Load packages 
library(dplyr) 
library(ggplot2) 
library(lubridate) 

# Read the data 
APRA <- read.table(text = "Post_Title Post_Day 'Visit_Time_Per_Page_(Minutes)' 
'Title 1' '2016-05-15' 4.7 
'Title 2'  '2016-05-15' 3.8 
'Title 3'  '2016-05-15' 5.3 
'Title 4'  '2016-05-16' 2.9 
'Title 5'  '2016-05-17' 5.0 
'Title 6' '2016-05-17' 4.3 
'Title 7'  '2016-05-17' 4.7 
'Title 8'  '2016-05-17' 3.0 
'Title 9'  '2016-05-18' 2.9 
'Title 10' '2016-05-18' 4.0 
'Title 11' '2016-05-19' 6.1 
'Title 12' '2016-05-19' 4.7 
'Title 13' '2016-05-19' 8.0 
'Title 14' '2016-05-19' 3.3", 
       header = TRUE, stringsAsFactors = FALSE) 

# Process and plot the data 
APRA %>% 
    mutate(Post_Day = ymd(Post_Day)) %>% 
    ggplot(aes(x = Post_Day, y = Visit_Time_Per_Page_.Minutes.)) + 
    geom_point() + 
    # Calculate the mean based on y, set geom = line 
    stat_summary(fun.y = "mean", colour = "red", size = 2, geom = "line") 
相关问题