我有一个像这样的数据框
TEST1 <- data.frame(
Number = c(46.68, 46.45, 48.35, 44.63, 45.65, 46.46, 45.14, 45.69, 47.10),
House.Height= c("LOW", "LOW", "LOW", "MODERATE", "MODERATE", "MODERATE", "HIGH", "HIGH", "HIGH"))
我已经使用以下代码创建了箱线图:
ggboxplot(TEST1, x = "House.Height", y = "Number", fill = "House.Height", palette = c("#009E73", "#D55E00", "#CC79A7"), order = c("LOW", "MODERATE", "HIGH"), sort.by.groups = TRUE,
label = TRUE, label.pos = "out", lab.vjust = -2
) +
scale_x_discrete(labels = c("low", "moderate", "high")) +
xlab("House Height")+ ylab("Number") +
labs(fill = "House"
) +
scale_y_continuous(breaks = seq(44,50)) +
coord_cartesian(ylim = c(44, 50))
但是,我可以从结果中看到,“LOW”条中的一个标签(46.45)在线上,您可以看到大麦44.63和45.14中的点。
有没有办法把它们向下移动,这样它们就能更明显了,我以为vjust会有,但很明显,它没有,我也试过为yaxis使用各种刻度,没有任何成功,任何帮助都将不胜感激。
2条答案
按热度按时间brjng4g31#
您可以使用
repel=TRUE
选项吗?或者,您可以将
ggplot
与geom_label_repel
一起使用,以获得更好的结果:63lcw9qa2#
我认为在ggplot中使用geom_boxplot会更容易实现这一点,因为这样您就可以简单地使用geom_text,而使用nudge_x和nudge_y进行调整非常简单。我还在绘图前重新排列了因子水平,并将调色板置于scale_fill_manual中。