Поскольку я не могу понять, почему графический вывод отображается так, как указано выше, и спрашивающий, похоже, не понимает мои комментарии, которые пытаются прояснить проблему с часовым поясом, я вставлю то, что вижу, с помощью его кода (в тихоокеанском часовом поясе США):
Возможно, это может послужить основой для дальнейшего обсуждения проблемы. Код, который делает это, находится в hist.POSIXt
, и, как я читаю, это должен быть раздел, который гласит:
if (valid == 6L) {
start$mday <- 1L
end <- as.POSIXlt(max(x, na.rm = TRUE))
end <- as.POSIXlt(end + (31 * 86400))
end$mday <- 1L
end$isdst <- -1L
breaks <- seq(start, end, "months")
ind <- seq_along(breaks[-1L])
if (right)
breaks[ind] <- breaks[ind] - 86400
if (missing(format))
format <- "%Y-%m-%d"
}
Так что, возможно, вызов должен быть изменен, чтобы установить для параметра right
значение FALSE?
png(); hist(dts, breaks = "month", freq = TRUE,
col = c("turquoise", "steelblue"),
xlab = "month", ylab = "count", right=FALSE) ; dev.off()
Все еще не могу понять, почему вы получаете форматирование "только на месяц". Поскольку hist
является общим, всегда есть вероятность, что вы загрузили пакет, который имеет другую версию. Там должно было быть предупреждение о маскировке.