我正在尝试设置绘图对象并稍后向其添加数据。我将设置两年的选举周期,并在关键事件发生时添加垂直线。但是我试图以6个月的间隔将垂直线放在图上,而是将线放在y轴上。
library(ggplot2)
dateline = seq(as.Date("2011/1/1"), by = "month", length.out = 24)
values = rnorm(24)
events = data.frame(dateline, values)
ggplot(events, aes(x=dateline, y=values)) +
scale_x_discrete(breaks=c("2011-01-01","2011-07-01","2012-01-01","2012-07-01")) +
labs(x="2012 Election Cycle")
现在我认为这些线应该在x轴上并且上下运行,不是吗?更奇怪的是,使用scale_y_continuous()会导致我期望x的行为。
让我更加困惑的是,我正在非常仔细地阅读一个教程,其中scale_x_discrete()的行为与我期望的方式相同,即为x轴创建垂直线。我失去了理智吗?
http://sharpsightlabs.com/blog/2014/11/24/r-line-chart-and-datavis-process/
答案 0 :(得分:1)
您应该使用连续比例。这对我有用:
ggplot(events, aes(x=dateline, y=values)) +
scale_x_date(date_breaks="6 months")
更一般地说,简单地说:
ggplot(events, aes(x=dateline, y=values))
在您的情况下会有效,因为日期范围是ggplot
自动选择6个月作为要显示的标签范围(这就是为什么y连续缩放示例适合您; y是不是&#39执行任何操作,删除scale_x_discrete
位有助于解决问题。