[英]how to plot the mean over time in ggplot2 R
我希望繪制一段時間內的平均時間。 我的數據集稱為APRA,它有一個名為Post_Day的列,其中包含以POSIXct表示的日期,還有一個名為Visit_Time_Per_Page_(Minutes)的列,它是一種num格式。
當我輸入以下內容時:
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)")
我得到這個:
我需要的是隨着時間推移繪制的每日平均值。
謝謝。
數據樣本:
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
我通過更改2017
至2016
所有記錄來更改輸入數據,因為生成圖比較容易,例如。
關鍵是使用stat_summary
函數並指定該函數和geom。
# 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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.