簡體   English   中英

如何在ggplot2 R中繪制隨時間變化的平均值

[英]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

我通過更改20172016所有記錄來更改輸入數據,因為生成圖比較容易,例如。

關鍵是使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM