我希望x轴在3月到11月之间运行,但日期只在4月到8月之间运行。
生成随机日期数据并转换为数据框
date.data <- sample(seq(as.Date("2016-04-01"),as.Date("2016-08- 31"),by = "day"),50)
date.df <- as.data.frame(date.data)
使用x轴
的默认值生成ggplot直方图ggplot(date.df,aes(date.data)) + geom_histogram()
尝试通过编写datebreaks向量并使用缩放命令来覆盖默认值。最终的直方图仍然只在4月到8月之间。
datebreaks <- seq(as.Date("2016-03-01"),as.Date("2016-11-15"),by = "month")
ggplot(date.df,aes(date.data)) + geom_histogram() +
scale_x_date(breaks = datebreaks,labels=date_format("%b"))
如何从3月到11月运行x轴?
aosmith提出了使用xlim()的有用建议。这是有效的,但直方图只有在轴上标记的备用月份。如果我使用scale_x_date标记每个月,那么该比例将覆盖xlim(命令)
mar <- as.Date("2016-03-01")
nov <- as.Date("2016-11-01")
ggplot(date.df,aes(date.data)) + geom_histogram() +
xlim(c(mar,nov))
正是我正在寻找的东西,只是隔着几个月才会出现标签。
添加scale命令会标记所有月份,但我会丢失x轴的3月到11月的跨度。
mar <- as.Date("2016-03-01")
nov <- as.Date("2016-11-01")
ggplot(date.df,aes(date.data)) + geom_histogram() +
xlim(c(mar,nov)) + scale_x_date(date_breaks = "1 month", date_labels = "%b")
任何人都知道如何使用xlim()并同时设置标签格式(每个月显示为标签)?