我想添加文字以指示箱线图(框的左侧或右侧)的中位数和铰链。我正在努力解决文本的横向定位问题。 如何计算方框的x坐标(左右)?(或如何将它们充分放置在方框的左侧或右侧)。
set.seed(0)
d <- data.frame(x = rnorm(20))
pos <- quantile(d$x)[2:4]
s <- data.frame(pos, q=names(pos))
ggplot(d, aes("A", x)) +
geom_boxplot() +
geom_text(aes(y=pos, label=q), s, hjust=5)
答案 0 :(得分:3)
对于箱形图,ggplot2
使第一个箱图位于x = 1,然后下一个位于x = 2,3,3等处。如果您在每个因子级别只有一个图表(即没有细分在这些点上),条的宽度为0.75,每边0.375。
因此,对于您的示例,您希望使用x = (1 - 0.375)
添加geom_text并留出一点空间以确保它不重叠:
library(ggplot2)
set.seed(0)
d <- data.frame(x = rnorm(20))
pos <- quantile(d$x)[2:4]
s <- data.frame(pos, q=names(pos))
ggplot(d, aes("A", x)) +
geom_boxplot() +
geom_text(aes(y=pos, label=q), x=1-0.375,s)
如果您有多个箱图,则需要拨打电话:
geom_text(aes(y=pos, label=q, x = as.numeric(factor(var))-0.375), s)