javadoc для Class.getResourceAsStream()
документирует логику поиска:
Если имя начинается с
'/'
('\u002f'
), то абсолютное имя ресурса - это часть имени, следующего за «/'.. В противном случае абсолютное имя имеет следующую форму:
modified_package_name/name
Если
blockquote>modified_package_name
является имя пакета этого объекта с заменой «/» на'.'
('\u002e'
).Таким образом, имя ресурса, переданное методу, должно выглядеть как
/com/package/p2/props.properties
, еслиprops.properties
сохраняется в пакетеcom.package.p2
вместо текущего класса.
Один из подходов состоит в том, чтобы использовать geom_histogram
для простого размещения данных:
library(dplyr)
library(ggplot2)
library(lubridate)
dat %>%
mutate(REGISTRATION_TIME = hms(REGISTRATION_TIME)) %>%
ggplot(aes(x = REGISTRATION_TIME)) +
geom_histogram(bins = 24) +
scale_x_time()
Редактировать:
Вы можете использовать аргумент breaks
в команде scale
, чтобы установить количество меток оси X. Вы также можете добиться более точного управления бинами, используя аргумент binwidth
в geom_histogram
. Поскольку у вас есть переменная времени, единица измерения представляет собой секунды, поэтому вы можете сделать бин за 15 минут, например, через `binwidth = 900 '.
dat %>%
mutate(REGISTRATION_TIME = hms(REGISTRATION_TIME)) %>%
ggplot(aes(x = REGISTRATION_TIME)) +
geom_histogram(binwidth = 900) +
scale_x_time(breaks = hm(paste0(seq(0, 24, by = 3), ":00")))
Данные:
dat <- read.table(text = "REGISTRATION_TIME
08:53:16
13:18:57
15:57:58
09:25:47
13:35:54
12:01:31
09:37:57
12:44:47
21:26:12
21:26:12
14:56:13
02:09:31
15:28:51
15:30:57", header = TRUE)
Незначительная вариация решения @ H1. Вы можете выполнить распределение времени до ggplot:
library(dplyr); library(lubridate)
dat %>%
mutate(REG_TIME_HOUR = hour(hms(REGISTRATION_TIME))) %>%
count(REG_TIME_HOUR) %>%
ggplot(aes(REG_TIME_HOUR, n)) + geom_col()