在geom_boxplot(ggplot2)中查找框的x坐标

时间:2015-11-16 14:48:33

标签: r ggplot2 boxplot

我想添加文字以指示箱线图(框的左侧或右侧)的中位数和铰链。我正在努力解决文本的横向定位问题。 如何计算方框的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)

enter image description here

1 个答案:

答案 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)

enter image description here

如果您有多个箱图,则需要拨打电话:

geom_text(aes(y=pos, label=q, x = as.numeric(factor(var))-0.375), s)