ggplot:geom_text,带有用于定位的组参数

时间:2015-11-17 11:05:20

标签: r ggplot2

我偶然发现了ggplot定位的一个简单问题,我将提供一个非常简单的例子,真正的问题要复杂得多,所以我在寻找生殖解决方案,如果可能的话ggplot环境。

   names <- c("a","b","c","d")
   days <- c(100,50,25,10)

   dat <- data.frame(name=rep(names,days),date=as.Date(Sys.Date()-sum(days)+1):Sys.Date(),value=rep(days,days))

   ggplot(dat,aes(x = date, group = name)) +
   geom_line(aes(y=value,color=name)) +
   geom_text(aes(max(date),value,label=value),vjust=0)

enter image description here

我正在寻找的是将文本放在代表max(date)应该完成的组的每一行的末尾。我尝试了各种group = name的可能性,但无法在ggplot中解决这个问题。

1 个答案:

答案 0 :(得分:3)

这有帮助吗?我为标签生成了第二个数据集,因为它更容易聚合(并且自己控制它),你只需要绘制一次标签。

library(dplyr)
dat_labels <- dat %>% group_by(name) %>% summarise(
  label_position=max(date),
  label_value=max(value)
)

ggplot(dat,aes(x = date, group = name)) +
  geom_line(aes(y=value,color=name)) +
  geom_text(data=dat_labels, aes(x=label_position, y=label_value,label=label_value),vjust=0)

enter image description here