Я хотел бы иметь ось X в течение 24-часового периода с xlim = c (00:00 дня, 24:00 того же дня) с часовыми интервалами.(Справочная информация Данные временных рядов - как )
Ниже приведен код того, что я получил до сих пор ...
### Data Input
time_Thurs <- c("01:10", "05:50", "06:00","06:15", "06:25", "09:35", "10:00", "12:40",
"14:00", "17:20", "18:50", "19:10", "20:10", "21:00", "22:05", "22:35")
event_Thurs <- c("u", "u", "T", "T", "u", "u", "T","T","u", "u", "T", "T", "T", "T", "u", "W")
volume_Thurs <- c(NA, NA, 0.25, 0.25, NA, NA, 0.125, 0.625, NA, NA, 0.25, 0.25, 0.25, 0.25,
NA, 0.25)
total_liquids_Thurs <- sum(volume_Thurs, na.rm=TRUE)
time_Thurs <- paste("04/04/2019", time_Thurs, sep=" ")
### Collect all data together
event <- c(event_Thurs)
Volume <- c(volume_Thurs)
time_log <- c(time_Thurs)
time_log <- strptime(time_log, format = "%d/%m/%Y %H:%M")
time_view <- format(time_log, "%H:%M")
### Put into Dataframe
patient_data <- data.frame(time_log, time_view, event, Volume)
patient_data$time_view <- as.character(patient_data$time_view)
daily_plot <- function(x, day) {
# x patient data - a data.frame with four columns:
# POSIXct time, time, event and Volume
# date number of day of month
# y volume of liquid
# TotVol total volume of intake over week
# Event - drink or otherwise
x <- x[as.numeric(format(x[,1], "%d")) == day, ]
TotVol <- sum(x[,4], na.rm = TRUE)
DayOfWeek <- weekdays(x[1,1], abbreviate = FALSE)
# xlim = c(round(as.POSIXct(patient_data[1,1]), "day"), round(as.POSIXct(patient_data[1,1]), "day") + 60 * 60 * 24)
plot(x[,1],x[,4],
#xlim = c(round(as.POSIXct(patient_data[1,1]), "day"), round(as.POSIXct(patient_data[1,1]), "day") + 60 * 60 * 24),
# xlim = xlim,
xlim = c(x[1,1],x[length(x[,1]),1]), ylim = c(0, 1.0),
xlab="Hours of Study", ylab = "Volume of Liquid Drank /L",
main = paste("Total Liquids Drank = ", TotVol, " L on ", DayOfWeek, "Week 1, Apr 2019"),
sub = "dashed red line = urination", pch=16,
col = c("Brown", "black", "yellow", "green", "blue")[as.numeric(x[,3])],
xaxt = 'n'
)
# xAxis_hrs <- seq(round(as.POSIXct(patient_data[1,1]), "day"), round(as.POSIXct(patient_data[1,1]), "day") + 60 * 60 * 24, by="hour")
xAxis_hrs <- seq(as.POSIXct(x[1,1]), as.POSIXct(x[length(x[,1]),1]), by="hour")
axis(1, at = xAxis_hrs, labels = strftime(xAxis_hrs, format = "%H:%M"), las = 2)
abline( v = c(x[x[,3] == "u",1]), lty=3, col="red")
}
daily_plot(patient_data,4)
Начало моей строки хэшированияxAxis_hrs была моей попыткой получить то, что мне было нужно.Любая помощь будет оценена.