问题描述
我有一个箱线图,我想在其中显示标签名称。问题是我想排斥这些标签名称以使它们超出箱线图。我尝试了 geom_text_repel
包中的 ggrepel
,但当它们相互重叠时会排斥标签。
也尝试过这样的建议:Repel geom label and text in ggplot. And ordering geom points based on size
并且没有收到任何关于解决我的问题的综合信息。
示例:
mtdata <- mtcars %>%
rownames_to_column(var = "name") %>%
mutate(cyl = as.factor(cyl))
ggplot(mtdata,aes(x = cyl,y = mpg)) + geom_Boxplot() +
geom_text_repel(data = mtdata %>%
filter(mpg > 20 & wt >3),aes(label = name))
理想的输出:
解决方法
一个厚颜无耻的解决方案是一个简单的轻推。
library(tidyverse)
mtdata <- mtcars %>%
rownames_to_column(var = "name") %>%
mutate(cyl = as.factor(cyl))
ggplot(mtdata,aes(x = cyl,y = mpg)) + geom_boxplot() +
ggrepel::geom_text_repel(data = mtdata %>%
filter(mpg > 20 & wt >3),aes(label = name),nudge_x = .75)
由 reprex package (v0.3.0) 于 2021 年 2 月 8 日创建