避免在ggplot2中重叠geom_point和geom_text

时间:2017-10-04 00:39:54

标签: r ggplot2 scatter-plot geom-text

如何避免ggplot2中的这两层重叠?我尝试显示文本,以便它们不会位于点之上。

check_overlap可以避免文本重叠,但不会与其他图层重叠。

我还尝试了库geom_text_repel,但此库不支持check_overlap并显示每个数据点的文本。

但我不需要像check_overlap这样的每一点都有文字。

ggplot(dat, aes(x = CPI, y = HDI)) +
  geom_point(aes(color = Region), shape=21, size=4, position = "identity") +
  geom_text(data = dat, aes(label = Country), size=4, check_overlap = TRUE)

1 个答案:

答案 0 :(得分:0)

geom_text_repel不会为空字符串""创建文本标签。但是,文本标签将排除未标记的数据点。

试试这个:

# Hide text labels for the first 3 data points
idx <- c(1,2,3)

dat$CountryLabel      <- dat$Country
dat$CountryLabel[idx] <- ""

library(ggrepel)
ggplot(...) + geom_text_repel(data = dat, aes(label = CountryLabel))