时间序列数据
Time-Series Data
我正在尝试绘制 R 中每小时记录的时间序列数据。我想按月绘制 Temp 随着时间的 x 轴间隔。当前根据日志编号(61、62 等)绘制 Temp,但无法将 x 轴切换到月份。
`library(readr)
Apex_Log_Data <- read_csv("Aquaria/Apex Log Data.csv")
colnames(Apex_Log_Data)[16] <- "Salx2"
Apex_Log_Data[25] <- NULL
par(mfrow=c(2,1))
par(mar=c(4,2,1,1))
apex <- subset(Apex_Log_Data, Date!="NA")
plot(apex$Tmp, type = "l", ylim = c(25.5, 27.5), xlab = NA, ylab = NA)
尝试此解决方案,使用 lubridate
轻松处理日期,使用 ggplot()
非常灵活的绘图:
# example data
apex <- data.frame(ID = 60:64,
Date = c("9/1/18", "9/2/18", "10/1/18", "10/3/18", "11/2/18"),
Time = c("10:00:00", "11:00:00", "12:00:00", "1:00:00", "2:00:00"),
Tmp = c(27, 26.9, 26.9, 26.8, 26.8))
library(ggplot2)
library(lubridate)
ggplot(apex) +
geom_line(aes(x = mdy(Date), y = Tmp)) +
ylim(c(25.5, 27.5)) +
labs(x = "", y = "")
我正在尝试绘制 R 中每小时记录的时间序列数据。我想按月绘制 Temp 随着时间的 x 轴间隔。当前根据日志编号(61、62 等)绘制 Temp,但无法将 x 轴切换到月份。
`library(readr)
Apex_Log_Data <- read_csv("Aquaria/Apex Log Data.csv")
colnames(Apex_Log_Data)[16] <- "Salx2"
Apex_Log_Data[25] <- NULL
par(mfrow=c(2,1))
par(mar=c(4,2,1,1))
apex <- subset(Apex_Log_Data, Date!="NA")
plot(apex$Tmp, type = "l", ylim = c(25.5, 27.5), xlab = NA, ylab = NA)
尝试此解决方案,使用 lubridate
轻松处理日期,使用 ggplot()
非常灵活的绘图:
# example data
apex <- data.frame(ID = 60:64,
Date = c("9/1/18", "9/2/18", "10/1/18", "10/3/18", "11/2/18"),
Time = c("10:00:00", "11:00:00", "12:00:00", "1:00:00", "2:00:00"),
Tmp = c(27, 26.9, 26.9, 26.8, 26.8))
library(ggplot2)
library(lubridate)
ggplot(apex) +
geom_line(aes(x = mdy(Date), y = Tmp)) +
ylim(c(25.5, 27.5)) +
labs(x = "", y = "")