'ggplot representing time from 1AM to 1PM instead of 7AM to 7PM

I have a plot here that is representing 1AM to 1PM instead of 7AM to 7PM like my data is showing. Could someone have a look and tell me what is wrong in code? Thank you

Here is the code for printing the dataframe:

dput(head(heartrate_data, 50))

And here is the dataframe:

structure(list(Id = c("user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6"), User = c("user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6", "user_6", 
"user_6", "user_6", "user_6", "user_6", "user_6", "user_6"), 
    Time = c("4/12/2016 7:21:00 AM", "4/12/2016 7:21:05 AM", 
    "4/12/2016 7:21:10 AM", "4/12/2016 7:21:20 AM", "4/12/2016 7:21:25 AM", 
    "4/12/2016 7:22:05 AM", "4/12/2016 7:22:10 AM", "4/12/2016 7:22:15 AM", 
    "4/12/2016 7:22:20 AM", "4/12/2016 7:22:25 AM", "4/12/2016 7:22:35 AM", 
    "4/12/2016 7:22:40 AM", "4/12/2016 7:22:50 AM", "4/12/2016 7:22:55 AM", 
    "4/12/2016 7:23:00 AM", "4/12/2016 7:23:10 AM", "4/12/2016 7:23:25 AM", 
    "4/12/2016 7:23:30 AM", "4/12/2016 7:23:40 AM", "4/12/2016 7:23:50 AM", 
    "4/12/2016 7:24:00 AM", "4/12/2016 7:24:10 AM", "4/12/2016 7:24:20 AM", 
    "4/12/2016 7:24:30 AM", "4/12/2016 7:24:40 AM", "4/12/2016 7:24:50 AM", 
    "4/12/2016 7:25:05 AM", "4/12/2016 7:25:10 AM", "4/12/2016 7:25:15 AM", 
    "4/12/2016 7:25:20 AM", "4/12/2016 7:25:35 AM", "4/12/2016 7:25:40 AM", 
    "4/12/2016 7:25:45 AM", "4/12/2016 7:25:50 AM", "4/12/2016 7:25:55 AM", 
    "4/12/2016 7:26:00 AM", "4/12/2016 7:26:15 AM", "4/12/2016 7:26:20 AM", 
    "4/12/2016 7:26:30 AM", "4/12/2016 7:26:40 AM", "4/12/2016 7:26:50 AM", 
    "4/12/2016 7:27:00 AM", "4/12/2016 7:27:15 AM", "4/12/2016 7:27:25 AM", 
    "4/12/2016 7:27:30 AM", "4/12/2016 7:27:45 AM", "4/12/2016 7:27:50 AM", 
    "4/12/2016 7:27:55 AM", "4/12/2016 7:28:00 AM", "4/12/2016 7:28:05 AM"
    ), Value = c(97L, 102L, 105L, 103L, 101L, 95L, 91L, 93L, 
    94L, 93L, 92L, 89L, 83L, 61L, 60L, 61L, 61L, 57L, 54L, 55L, 
    58L, 60L, 59L, 57L, 56L, 58L, 57L, 58L, 60L, 60L, 58L, 57L, 
    55L, 54L, 52L, 53L, 53L, 53L, 54L, 53L, 53L, 53L, 53L, 54L, 
    55L, 56L, 57L, 58L, 60L, 62L)), row.names = c(NA, 50L), class = "data.frame")

heartrate_data %>%
mutate(heartrate_data, Time = as.POSIXct(Time, format = "%m/%d/%Y %H:%M:%OS %p")) %>%
ggplot(aes(x = Time, y = Value)) +
geom_line() +
theme_bw() +
scale_x_datetime(breaks = "1 hour", date_labels = "%I:%M %p") +
theme(axis.text.x = element_text(angle = 45))

enter image description here



Solution 1:[1]

Problem has been solved via changing "%m/%d/%Y %H:%M:%OS %p" to "%m/%d/%Y %I:%M:%OS %p". All I did was change the H to I in the code.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Martin Gal