ggplot2: Invalid input: time_trans when using scale_x_datetime

Omar Gonzales :

I'm trying to set some breaks on my x axis.

But getting:

Error: Invalid input: time_trans works with objects of class POSIXct only

My plot renders well without scale_x_datetime:

enter image description here

ggplot code:

library(tidyverse) 
library(lubridate)

ggplot(df, aes(dateHourMinute, y = users)) +
  geom_col() +
  #scale_x_discrete(guide = guide_axis(check.overlap = TRUE))
  scale_x_datetime(breaks=c(ymd_hms("2019-06-14 19:30:00"), ymd_hms("2019-06-14 20:00:00"), ymd_hms("2019-06-14 21:55:00")),
                     labels=c("19:00", "20:00", "22:00"),
                     limits=c(19,22))

data:

structure(list(dateHourMinute = structure(c(1560540600, 1560540660, 
1560540720, 1560540780, 1560540840, 1560540900, 1560540960, 1560541020, 
1560541080, 1560541140, 1560541200, 1560541260, 1560541320, 1560541380, 
1560541440, 1560541500, 1560541560, 1560541620, 1560541680, 1560541740, 
1560541800, 1560541860, 1560541920, 1560541980, 1560542040, 1560542100, 
1560542160, 1560542220, 1560542280, 1560542340, 1560542400, 1560542460, 
1560542520, 1560542580, 1560542640, 1560542700, 1560542760, 1560542820, 
1560542880, 1560542940, 1560543000, 1560543060, 1560543120, 1560543180, 
1560543240, 1560543300, 1560543360, 1560543420, 1560543480, 1560543540, 
1560543600, 1560543660, 1560543720, 1560543780, 1560543840, 1560543900, 
1560543960, 1560544020, 1560544080, 1560544140, 1560544200, 1560544260, 
1560544320, 1560544380, 1560544440, 1560544500, 1560544560, 1560544620, 
1560544680, 1560544740, 1560544800, 1560544860, 1560544920, 1560544980, 
1560545040, 1560545100, 1560545160, 1560545220, 1560545280, 1560545340, 
1560545400, 1560545460, 1560545520, 1560545580, 1560545640, 1560545700, 
1560545760, 1560545820, 1560545880, 1560545940, 1560546000, 1560546060, 
1560546120, 1560546180, 1560546240, 1560546300, 1560546360, 1560546420, 
1560546480, 1560546540, 1560546600, 1560546660, 1560546720, 1560546780, 
1560546840, 1560546900, 1560546960, 1560547020, 1560547080, 1560547140, 
1560547200, 1560547260, 1560547320, 1560547380, 1560547440, 1560547500, 
1560547560, 1560547620, 1560547680, 1560547740, 1560547800, 1560547860, 
1560547920, 1560547980, 1560548040, 1560548100, 1560548160, 1560548220, 
1560548280, 1560548340, 1560548400, 1560548460, 1560548520, 1560548580, 
1560548640, 1560548700, 1560548760, 1560548820, 1560548880, 1560548940, 
1560549000, 1560549060, 1560549120, 1560549180, 1560549240, 1560549300
), class = c("POSIXct", "POSIXt"), tzone = "UTC"), users = c(2894, 
2969, 3031, 2912, 2845, 2837, 2832, 2731, 2784, 2681, 2682, 2614, 
2569, 2551, 2580, 2588, 2574, 2458, 2419, 2504, 2430, 2401, 2322, 
2252, 2329, 2374, 2201, 2142, 2163, 2133, 2087, 2078, 2053, 2206, 
2093, 2091, 2045, 2059, 1945, 1943, 1951, 1972, 1899, 1822, 1841, 
1906, 1778, 2148, 3297, 2098, 1801, 1650, 1630, 1626, 1674, 1647, 
1633, 1671, 1757, 1862, 1968, 2045, 2119, 2396, 2513, 2394, 2375, 
2492, 2488, 2381, 2417, 2337, 2243, 2211, 1999, 2021, 2037, 2418, 
2254, 2050, 2004, 1944, 1802, 1718, 1726, 1725, 1641, 1657, 1592, 
1604, 1551, 1553, 1486, 1481, 1518, 1479, 1310, 1317, 1329, 1259, 
1255, 1259, 1407, 1352, 1250, 1250, 1223, 1149, 1103, 1108, 1025, 
1165, 1870, 1452, 1418, 1469, 1522, 1303, 1147, 1060, 1004, 1001, 
1003, 983, 894, 870, 882, 863, 832, 790, 819, 732, 751, 752, 
694, 692, 926, 862, 755, 736, 796, 803, 771, 869, 745, 709), 
    hour = c(19L, 19L, 19L, 19L, 19L, 19L, 19L, 19L, 19L, 19L, 
    19L, 19L, 19L, 19L, 19L, 19L, 19L, 19L, 19L, 19L, 19L, 19L, 
    19L, 19L, 19L, 19L, 19L, 19L, 19L, 19L, 20L, 20L, 20L, 20L, 
    20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 
    20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 
    20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 
    20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 
    20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 21L, 21L, 21L, 21L, 
    21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 
    21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 
    21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 
    21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 
    21L, 21L, 21L, 21L), minute = c(30L, 31L, 32L, 33L, 34L, 
    35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 
    47L, 48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 
    59L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 
    13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 
    25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 
    37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 
    49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 0L, 
    1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 
    15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 
    27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 
    39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 
    51L, 52L, 53L, 54L, 55L), day = c(14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 
    14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L), month = c(6, 
    6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
    6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
    6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
    6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
    6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
    6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
    6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
    6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6)), row.names = c(NA, -146L
), totals = list(list(users = "2016665")), minimums = list(list(
    users = "1")), maximums = list(list(users = "11863")), isDataGolden = TRUE, rowCount = 2875L, class = "data.frame")
Wolfgang Arnold :

The limits also need to use Date - e.g.:

ggplot(df, aes(dateHourMinute, y = users)) +
     geom_col() +
     #scale_x_discrete(guide = guide_axis(check.overlap = TRUE))
     scale_x_datetime(breaks=c(ymd_hms("2019-06-14 19:30:00"), ymd_hms("2019-06-14 20:00:00"), ymd_hms("2019-06-14 21:55:00")),
                      labels=c("19:00", "20:00", "22:00"),
                      limits=c(ymd_hms("2019-06-14 19:00:00"),ymd_hms("2019-06-14 22:00:00")))

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=33344&siteId=1