我有一些我正在ggplot中绘制的数据,我想让x轴上的日期更早开始,这样我就可以更好地与其他图形进行比较。底部的虚拟数据。
###plot line graph
cell1 <- ggplot(df[!is.na(df$value), ], aes(x=Date, y=value, colour
=variable, group = variable,shape = variable, linetype = variable, fill
= variable))
cell1 <- cell1 + geom_line(lwd =3) + geom_point(size =17, stroke = 2)
我希望它从16-06-2018开始,并且每周都有一个到2016年8月4日的时间。我一直在使用break.vec()取得一些成功,但由于这个数据集开始接近(即20-06-2016的第一个数据点)到第二个刻度线,它完全放弃了第一个并从23开始06-2016。我确信我只是遗漏了一些简单的东西。
###adjust x-axis
break.vec <- c(as.Date("2016-06-16"),
seq(from=as.Date("2016-06-16"), to=as.Date("2016-08-04"),
by="week"))
cell1 <- cell1 + scale_x_date(breaks = break.vec, date_labels = "%d-
%m",expand = c(0.05,0))
赞赏任何输入
df <- structure(list(Date = structure(c(16968, 16969, 16970, 16971,
16972, 16973, 16974, 16975, 16976, 16977, 16978, 16979, 16980,
16981, 16982, 16983, 16984, 16985, 16986, 16987, 16988, 16989,
16990, 16991, 16992, 16993, 16994, 16995, 16996, 16997, 16998,
16999, 17000, 17001, 17002, 17003, 17004, 17005, 17006, 17007,
17008, 17009, 17010, 17011, 17012, 17013, 17014, 17015, 17016
), class = "Date"), variable = structure(c(1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label =
"total.cell.L", class = "factor"),
value = c(NA, NA, NA, NA, 64730L, NA, NA, NA, 138128L, NA,
NA, NA, 64230L, 84194L, NA, 87666L, NA, NA, NA, NA, 8980L,
NA, NA, NA, 24503L, NA, NA, 72042L, 55651L, NA, NA, NA, NA,
17360L, NA, NA, NA, NA, 57287L, NA, NA, NA, 98081L, NA, 46003L,
NA, 122385L, NA, 177067L)), row.names = c(NA, -49L), .Names = c("Date",
"variable", "value"), class = "data.frame")
答案 0 :(得分:2)
要获得所需的确切开始日期,请使用expand_limits
。在下面的代码中,我们使用break.vec
中最早的日期作为起始值:
cell1 +
scale_x_date(breaks = break.vec, date_labels = "%d-%m") +
expand_limits(x=min(break.vec))
设置轴限制的另一种方法是limits
的{{1}}参数:
scale_x_date
您还可以使用cell1 +
scale_x_date(breaks = break.vec, date_labels = "%d-%m", limits=range(break.vec))
中的expand
参数来控制添加到x轴的填充量,但scale_x_date
和limits
可让您完全控制放置限制。