我正在尝试在ggplot2
中生成带有自定义刻度的图。问题是如果我选择例如date_breaks = "5 years"
,该图将在最后一个日期年份开始标注,并每隔5年返回一次,但在第一个日期错过。这是有道理的,但是如果我也想显示第一个日期,以便人们看到我的情节的开始怎么办?此外,未显示中间的刻度线。
所以我想拥有的是:
MWE:
set.seed(1)
test <- data.table(x = rnorm(29*2),var=c(rep("x1",29),rep("x2",29)),
time=rep(seq(as.Date("1983/12/31"),as.Date("2011/12/31"), "year"),2))
library(ggplot2);library(scales)
ggplot(data=test,aes(x=time, y=x, colour=var)) +
geom_line() + scale_x_date(date_labels="%Y",date_breaks = "5 years",
date_minor_breaks="1 year")
答案 0 :(得分:0)
您可以手动定义中断和标签,可以随意调整。
dts <- as.Date(paste0(seq(1980, 2015, 1), "-01-01"))
x.labs <- substr(as.character(dts), 1, 4)
x.labs[5:length(dts - 2) %% 5 != 0] <- "" # modulo 5
library(ggplot2);library(scales)
ggplot(data=test, aes(x=time, y=x, colour=var)) +
geom_line() +
scale_x_date(breaks=dts, labels=x.labs)
屈服