Как я могу построить временной ряд, который показывает только дни на оси X?
Я хочу нарисовать этот график временного ряда, используя R.
Мой набор данных - это временной ряд, который включает дни, часы и минуты. Я хочу, чтобы сюжет показывал только день недели. Когда я использую нормальный plot(x,y)
я получаю box plot
и я не могу выяснить тип этого сюжета. Может ли кто-нибудь помочь мне разобраться в сюжете и какую функцию можно использовать, чтобы получить такой сюжет.
Руководитель фактических данных:
head(data)
# Date Time Global_active_power Global_reactive_power Voltage
#1 2006-12-16 17:24:00 4.216 0.418 234.84
#2 2006-12-16 17:25:00 5.360 0.436 233.63
#3 2006-12-16 17:26:00 5.374 0.498 233.29
#4 2006-12-16 17:27:00 5.388 0.502 233.74
#5 2006-12-16 17:28:00 3.666 0.528 235.68
#6 2006-12-16 17:29:00 3.520 0.522 235.02
# Global_intensity Sub_metering_1 Sub_metering_2 Sub_metering_3
#1 18.4 0 1 17
#2 23.0 0 1 16
#3 23.0 0 2 17
#4 23.0 0 1 17
#5 15.8 0 1 17
#6 15.0 0 2 17
Минимально воспроизводимый набор данных:
set.seed(123)
data <- data.frame(Date = as.Date(rep(c("2006-06-16", "2006-06-17"), each = 1440)),
Time = format(as.difftime(0:1439, units = "mins") + as.POSIXct("2006-06-16"), "%H:%M"),
Global_active_power = cumsum(rnorm(2880, 0.02, 0.02) * rep(rep(c(1, -1), 4), 2880 / 8)))
На этом этапе я попробовал следующее:
x <- weekdays(data$Date)
y <- data$Global_active_power
plot(x, y)
но я получаю коробку.
1 ответ
Решение
Может быть, это то, что вы хотите:
set.seed(123)
data <- data.frame(Date = as.Date(rep(c("2006-06-16", "2006-06-17"), each = 1440)),
Time = format(as.difftime(0:1439, units = "mins") +
as.POSIXct("2006-06-16"), "%H:%M"),
Global_active_power = cumsum(rnorm(2880, 0.02, 0.02) *
rep(rep(c(1, -1), 4), 2880 / 8)))
data$datetime <- as.POSIXct(paste(data$Date,data$Time),tz="UCT")
plot(data$datetime,data$Global_active_power,type="l")
Вот сюжет: