据我所见,您可以通过将
point.padding
的值设置为与
geom_point(size)
相同的值来避免重叠。您可以通过给
nudge_y
一个非常小的正值来定义上方位置。
library(dplyr)
iris2 <- iris %>% distinct(Sepal.Length, Sepal.Width, .keep_all = T)
g <- ggplot(iris2[1:20,], aes(Sepal.Length, Sepal.Width)) + geom_point(pch=1, size=8)
g + geom_text_repel(aes(label=Species), segment.color=NA,
point.padding = unit(8, "points"), nudge_y = 1.0E-6)
我猜
box.padding = unit(-0.5, "lines")
会给标签赋予点的位置(但它可能是基于大写字母)。
iris2$Species <- as.character(iris2$Species)
iris2[7,5] <- "ABCDEFG"
g2 <- ggplot(iris2[1:20,], aes(Sepal.Length, Sepal.Width)) + geom_point(pch = 1, size = 8)
g2 + geom_text_repel(aes(label=Species), segment.color=NA, box.padding = unit(-0.5, "lines"))
nudge_y
把它们全部向上推,而point.padding
把它们拉回来? - geotheorynudge_y
是这样的,并且解释point.padding
是从点位置到标签底部的距离(如果它在上方)。但它们变得不必要了... - cuttlefish44