仅在图的开始和结束处添加 x 和 y 数据点标签

Adding both x and y data point labels on only start and end of plot

我想为我的数据点添加标签,但只想为开始和结束数据点添加 x 和 y 值。使用 geom_text,我只能为所有数据点添加 x 或 y。有没有办法让我在我的情节中实现我想要的?

我的一些数据代码:

Area <- structure(list(Cumulative.increase = c(14.69, 37.21, 50.72, 51.81, 57.05, 57.98, 72.65, 79.93, 95.82, 
97.25, 115.69, 147.69, 155.82, 161.03, 169.9, 185.31, 190.57, 194.82), 
Reclaim.date = structure(c(13610, 13722, 13994, 14010, 14154, 14218, 14362, 14426, 14730, 14826, 15082, 
15850, 16170, 16378, 16650, 16922, 17370, 17546), class = "Date")), 
.Names = c("Cumulative.increase",  "Reclaim.date"), 
row.names = c(NA, 18L), class = "data.frame")

这是我现在的情节代码。

    plot1 <- ggplot(Area, aes(x=Reclaim.date, y=Cumulative.increase))+
      geom_area() + 
      geom_text(data = Area, aes(x=Reclaim.date, y=Cumulative.increase, 
         label = Reclaim.date))

在这种情况下,我想在图中同时包含 DateCumulative.increase 的标签,但仅限于第一个和最后一个数据点。

我查看了一些关于此的帖子,其中一些使用 ifelse 来选择他们的特定点,但由于我想要第一点和最后一点,我不确定我应该做什么。非常感谢。

这是我的图表目前的样子,只有 x/y 轴(在本例中是 x 轴)并且还显示每个点的标签,但我只想要第一个和最后一个点.

dplyr

的一种方式
require(dplyr)
  data_text <- Area %>% filter(row_number() %in% c(1,n()))

我用 row_number 完成了此操作,因为您之前的代码包含多个组。您希望首先使用 group_by.

按变量分组

然后将这个新数据框用于您的绘图

 ggplot(Area, aes(x=Reclaim.date, y=Cumulative.increase))+
  geom_area() + 
  geom_text(data = data_text, aes(x=Reclaim.date, y=Cumulative.increase, label = Reclaim.date))