问题描述
我正在尝试重新创建以下情节。
但无论我做什么,我的 X 轴标记都是从 1965 年而不是 1963 年开始的。这是我获得的图表。
这是我的代码:
ggplot(dulles,aes(Index,Passengers)) +
geom_line() +
geom_point(color = "red") +
ylim(0,25000) +
scale_x_date(limits = as.Date(c("1963","2015"),format = "%Y"),date_breaks = "5 years",date_labels = "%Y")
如您所见,我已设置了限制参数,但它们并未显示。
我还尝试将 date_breaks = "5 years",date_labels = "%Y")
替换为 breaks = as.Date(as.character(seq(1963,2015,5)),format = "%Y")
,这无论如何都可能很愚蠢。
我希望 X 轴标签从 1963 年开始到 2013 年结束,但不删除 2014 年和 2015 年的数据点,就像在原始图中一样。
我该怎么做?
解决方法
定义中断向量是一种强制轴刻度线的简单方法。
library(ggplot2)
breaks.vec <- seq(min(df1$Index),max(df1$Index),by = "5 years")
ggplot(df1,aes(Index,Y)) +
geom_line() +
geom_point(color = "red") +
scale_x_date(breaks = breaks.vec,date_labels = "%Y")
测试数据创建代码
set.seed(2021)
Index <- seq(as.Date("1963-01-01"),as.Date("2015-12-31"),by = "1 years")
Y <- cumsum(rnorm(length(Index)))
df1 <- data.frame(Index,Y)