调整 hist.Date 的 x 轴断点年
Adjust x-axis breakpoint years for hist.Date
我想为每年的观察结果制作一些有意义的直方图。例如,这里有几个日期在 1970 年和 1971 年(接近 Unix 纪元):
dates <- as.Date(c("1970-01-01", "1971-08-16", "1971-12-31"))
d <- hist(dates, "years", freq=TRUE)
d$breaks # -1 364 729
默认输出显示误导性的 x 轴,偏移 1 年。如果您想了解更多 (PR#16679)。
,我在错误报告中详细介绍了这种断点行为
我想解决 R 3.2.3 中的行为以制作有意义的直方图,其中此示例的预期 x 轴标签为 1970、1971 和 1972 .我试过将断点调整一天,重新绘制:
d$breaks <- d$breaks + 1
plot(d)
但 x 轴不再是日期类型。关于如何获得预期输出的任何想法?
另一个想法是在箱线图的每个条形的中心绘制直方图的中点,它具有正确的日期。我只是不知道这是否容易做到,尽管被 hist
返回(参见示例中的 d$mids
)。
我没想到会出现这种情况,但这是一个解决方法:
library(lubridate)
hist(dates + dyears(1), "years", freq= TRUE)
一种解决方法是沿 x 轴显示中点,并提供一些来自 this Q/A.
的提示
# plot histogram without axes
d <- hist(dates, "years", freq=TRUE, xaxt="n")
# these Date casts are optional, and show some the structure of the breaks
d$mids <-d$mids + as.Date("1970-01-01") # "1970-07-01" "1971-07-01"
d$breaks <- d$breaks + as.Date("1970-01-01") # "1969-12-31" "1970-12-31" "1971-12-31"
# finish off the plot
axis.Date(1, at=d$mids)
axis(2)
box(bty="l")
我想为每年的观察结果制作一些有意义的直方图。例如,这里有几个日期在 1970 年和 1971 年(接近 Unix 纪元):
dates <- as.Date(c("1970-01-01", "1971-08-16", "1971-12-31"))
d <- hist(dates, "years", freq=TRUE)
d$breaks # -1 364 729
默认输出显示误导性的 x 轴,偏移 1 年。如果您想了解更多 (PR#16679)。
,我在错误报告中详细介绍了这种断点行为我想解决 R 3.2.3 中的行为以制作有意义的直方图,其中此示例的预期 x 轴标签为 1970、1971 和 1972 .我试过将断点调整一天,重新绘制:
d$breaks <- d$breaks + 1
plot(d)
但 x 轴不再是日期类型。关于如何获得预期输出的任何想法?
另一个想法是在箱线图的每个条形的中心绘制直方图的中点,它具有正确的日期。我只是不知道这是否容易做到,尽管被 hist
返回(参见示例中的 d$mids
)。
我没想到会出现这种情况,但这是一个解决方法:
library(lubridate)
hist(dates + dyears(1), "years", freq= TRUE)
一种解决方法是沿 x 轴显示中点,并提供一些来自 this Q/A.
的提示# plot histogram without axes
d <- hist(dates, "years", freq=TRUE, xaxt="n")
# these Date casts are optional, and show some the structure of the breaks
d$mids <-d$mids + as.Date("1970-01-01") # "1970-07-01" "1971-07-01"
d$breaks <- d$breaks + as.Date("1970-01-01") # "1969-12-31" "1970-12-31" "1971-12-31"
# finish off the plot
axis.Date(1, at=d$mids)
axis(2)
box(bty="l")