我想在x轴为Date的图上添加一些标签。我希望标签以中间为中心。如何在x轴上找到中点?
示例:
example <- data.frame(time = c("02/26/11", "05/26/10", "05/27/10", "05/28/10",
"05/29/10", "06/27/10", "06/30/10", "10/27/10",
"10/27/10", "12/26/12"),
value = c(5, 1, 7, 8, 11, 20, 14, 1, 20, 12))
example$time <- as.Date(example$time, format = "%m/%d/%Y")
ggplot(example, aes(x = time, y = value)) + geom_point() +
scale_x_date(labels = date_format("%b%Y"),
breaks = "3 month",
minor_breaks = "1 month")
现在,我想使用geom_text添加一个文本标签,其x坐标位于x轴的中间位置,y位于y轴的中间位置。
答案 0 :(得分:1)
听起来你只想要像
这样的东西xx<-data.frame(
time=mean(range(example$time)),
value=mean(range(example$value))
)
ggplot(example, aes(x = time, y = value)) + geom_point() +
geom_text(data=xx, label="midtext") +
scale_x_date(labels = date_format("%b%Y"),
breaks = "3 month",
minor_breaks = "1 month")
通过找到每个轴的范围的中心,我们找到了图的中心。然后我们在geom_text
的调用中使用这些值。
这将产生这张照片。
PS。我还将日期格式化行更改为
example$time <- as.Date(example$time, format = "%m/%d/%y")
因为你只有两位数而不是4位数年。