尝试手动设置日期变量的x轴范围

时间:2016-09-29 19:45:45

标签: r date datetime ggplot2

我希望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()并同时设置标签格式(每个月显示为标签)?

0 个答案:

没有答案