1

如果我想一一更改ggrepel中标签的名称,我该怎么办?

例如,

  scale_fill_manual(values=values,labels=c("A", "B",    
  expression(paste(italic("C")," ",     
  "D")),expression(paste(italic("E")," ", "F")))

我可以将这种灵活的标签添加到 ggrepel 吗?

  library(ggrepel)
  set.seed(42)


  dat <- subset(mtcars, wt > 2.75 & wt < 3.45)
  dat$car <- rownames(dat)

p <- ggplot(dat, aes(wt, mpg, label = car)) +
geom_point(color = "red")
p1 <- p + geom_text() + labs(title = "geom_text()")
p2 <- p + geom_text_repel() + labs(title = "geom_text_repel()")
4

1 回答 1

0

据我所知,您需要准备好要打印的标签。如果这样做,parse = TRUE选项将它们解析为expression()

dat <- dat %>% 
  head(n = 4) %>% 
  mutate(lab = c("A", 
                 "B",    
                 'paste(italic("C"), " ", "D")',
                 'paste(italic("E"), " ", "F")'))
pp <- dat %>% 
  ggplot(aes(wt, mpg, label = lab)) +
  geom_point(color = "red")

pp1 <- pp + geom_text(parse = TRUE) + labs(title = "geom_text()")
pp2 <- pp + geom_text_repel(parse = TRUE) + labs(title = "geom_text_repel()")
于 2019-10-10T08:15:01.277 回答