我正在尝试设置一个绘图对象并在以后向它添加数据。我将设定两年的选举周期,并在关键事件发生的地方加上垂直线。但是,我试图在地块上放置垂直线,每隔六个月就将直线放置在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/
发布于 2016-10-27 21:08:13
你应该用一个连续的比例。这对我来说很管用:
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没有做任何事情,而是删除了scale_x_discrete位才有帮助)。
https://stackoverflow.com/questions/40293997
复制相似问题