R:如何避免标签重叠

Jos*_*los 5 r ggplot2

我用 ggplot2 创建了一个图形,一些标签是重叠的。我想显示所有标签而不重叠。那可能吗?如何?我知道 geom_text 有一个选项“check_overlap”,如果没有重叠,则显示或不显示标签。但是,这不是我想要的。我想要并且需要显示所有标签。

\n\n

我的代码:

\n\n
ggplot(data, aes(x=DRTG, y=ORTG)) +\n  geom_point(colour = "#000000") + \n  ggtitle("Gr\xc3\xa1fico Liga DIA: Ratio Ofensivo / Ratio Defensivo (hasta jornada 8)") +\n  geom_text(label=rownames(data), colour = "#000000", nudge_x = 0, nudge_y = 1, size = 4, fontface = "bold", check_overlap = F) +\n  geom_point(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, colour="red", size = 1)) + \n  geom_vline(xintercept = pointMedia[, "mediaDRTG"], colour = "green") + \n  geom_hline(yintercept = pointMedia[, "mediaORTG"], colour = "blue") +\n  geom_text(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, label="Liga DIA"), nudge_x = 0, nudge_y = 1, colour = "red", fontface = "bold") +\n  theme(legend.position = "none") +\n  geom_abline(intercept =0 , slope = 1, colour = "orange")+ xlim(70,115) + ylim(70,115)\n
Run Code Online (Sandbox Code Playgroud)\n\n

以及一些标签上重叠的图像:

\n\n

在此输入图像描述

\n

Hei*_*kki 3

作为答案发布,之前是评论。

而不是只为nudge_yfor传递一个常量值geom_text

ggplot(data, aes(x=DRTG, y=ORTG)) +
  geom_text(label=rownames(data), colour = "#000000", 
            nudge_x = 0, nudge_y = 1, size = 4, fontface = "bold", check_overlap = F)
Run Code Online (Sandbox Code Playgroud)

...您可以传递完整的向量,例如my_nudge_y

my_nudge_y=c(1,1,...,0.6,1.2,...)
ggplot(data, aes(x=DRTG, y=ORTG)) +
  geom_text(label=rownames(data), colour = "#000000", 
  nudge_x = 0, nudge_y = my_nudge_y, size = 4, fontface = "bold", check_overlap = F)
Run Code Online (Sandbox Code Playgroud)

您可以使用它来单独调整琴弦位置。

一般来说,解决重叠并不是很容易的问题,因为文本数量相对较少,绘图区域开始填充文本。