【发布时间】:2016-02-10 12:10:58
【问题描述】:
我找了一会儿,找不到讨论类似问题的帖子。我在ggplot 中遇到日期缩放问题,我认为这与ggplot 处理日期的方式有关。我正在尝试消除列之间的所有空白,因为我的最终结果将类似于以下内容,这是一个显示跨月项目的容量规划图表:
即使使用默认缩放和宽度参数,列之间的间隙也不一致,这让我相信ggplot 可能正在以设定的宽度绘制所有列,但将它们放置在相对于每个月的天数。但是,即使在创建“月长度”变量以独立缩放每一列之后,我也无法在不导致其他差距重叠的情况下缩小所有差距。有人可以提供一些关于ggplot 如何处理日期的见解吗?
这里有一些可重现的代码:
library(lubridate)
library(ggplot2)
library(scales)
Months <- c("2015-01-01", "2015-02-01", "2015-03-01", "2015-04-01", "2015-05-01",
"2015-06-01", "2015-07-01", "2015-08-01", "2015-09-01", "2015-10-01")
Months <- as.Date(Months)
Totals <- c(1330, 1010, 950, 1110, 1020, 1160, 1320, 880, 620, 320)
df <- data.frame(Months, Totals)
df$MonthLength <- days_in_month(as.Date(df$Month))
ggplot()+
geom_bar(data=df, aes (x = Months, y = Totals, fill = Months, width = MonthLength),
position = "dodge", stat = "identity", alpha = 0.80)+
coord_cartesian(ylim = c(0, 1600))+
scale_x_date(breaks="1 month",limits=c(as.Date("2015-01-01"),as.Date("2015-10-01")),
labels = date_format("%b-%Y"))
【问题讨论】:
-
在我看来,月份之间的间隔是恒定的,而您设置的
width参数只是绘制的条形的宽度。我想如果你想要一些不同的东西,那么你将不得不使用grid或其他东西从头开始编程。 -
flaco777.请问您为什么不接受我在下面的回答?我可以做些什么来改善它吗?
-
这个问题是under discussion on meta。
-
@RHA 当然,在我稍后查看答案后,我意识到它没有回答最初的问题,这是关于 ggplot 如何处理日期绘图的问题。更多的问题是为什么我不能使用 ggplot 中的日期标签来处理这个问题,而不是如何找到解决方法。