当两个组的标签相同时,使用directlabels::geom_dl

当两个组的标签相同时,使用directlabels::geom_dl,r,ggplot2,grob,direct-labels,R,Ggplot2,Grob,Direct Labels,我在geom_dl()中遇到问题,因为两个组具有相同的标签,所以它没有正确放置标签。我看得出来 data$groups <- data$label data$groups以下是一些带有不可见unicode字符的巫毒: dat$pchange2 <- dat$pchange dat$pchange2[3:4] <- paste0(dat$pchange[3:4], "\u200B") ggplot(dat, aes(x = year, y = mean)) + geo

我在
geom_dl()
中遇到问题,因为两个组具有相同的标签,所以它没有正确放置标签。我看得出来

data$groups <- data$label

data$groups以下是一些带有不可见unicode字符的巫毒:

dat$pchange2 <- dat$pchange
dat$pchange2[3:4] <- paste0(dat$pchange[3:4], "\u200B")

ggplot(dat, aes(x = year, y = mean)) +
    geom_line(aes(color = level)) +
    geom_dl(aes(label=pchange2, color=level), method=list("last.qp"))

dat$pchange2如果您愿意,请随时将其添加到我的答案中。优雅的一个!
dat$pchange2 <- dat$pchange
dat$pchange2[3:4] <- paste0(dat$pchange[3:4], "\u200B")

ggplot(dat, aes(x = year, y = mean)) +
    geom_line(aes(color = level)) +
    geom_dl(aes(label=pchange2, color=level), method=list("last.qp"))
require(magrittr) 
require(dplyr)

dat <- select(dat, level, pchange) %>% 
  unique() %>% 
  mutate(pchange2 = ifelse(duplicated(pchange), paste0(pchange, "\u200B"), pchange)) %>% 
  merge(dat)