我用ggplot2创建了一个图形,有些标签重叠。我想显示所有标签而不重叠。那可能吗?怎么样?我知道有一个选项" check_overlap"如果没有重叠,则显示或不显示标签的geom_text。但是,这不是我想要的。我想要并且需要显示所有标签。
我的代码:
ggplot(data, aes(x=DRTG, y=ORTG)) +
geom_point(colour = "#000000") +
ggtitle("Gráfico Liga DIA: Ratio Ofensivo / Ratio Defensivo (hasta jornada 8)") +
geom_text(label=rownames(data), colour = "#000000", nudge_x = 0, nudge_y = 1, size = 4, fontface = "bold", check_overlap = F) +
geom_point(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, colour="red", size = 1)) +
geom_vline(xintercept = pointMedia[, "mediaDRTG"], colour = "green") +
geom_hline(yintercept = pointMedia[, "mediaORTG"], colour = "blue") +
geom_text(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, label="Liga DIA"), nudge_x = 0, nudge_y = 1, colour = "red", fontface = "bold") +
theme(legend.position = "none") +
geom_abline(intercept =0 , slope = 1, colour = "orange")+ xlim(70,115) + ylim(70,115)
图片上的部分标签重叠:
答案 0 :(得分:0)
发布以前评论的答案。
而不是仅为nudge_y
传递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)
...您可以传递完整的向量,例如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)
用于单独调整字符串位置。
一般来说,解决重叠并不是一件容易的问题,因为已经有相对较少的文本,绘图区域开始填充文本。