如何突出显示 R 中各种箱线图中的特定范围?

How to highlight specific ranges in various boxplots in R?

我有一个不同维度(A、B、C、D)的分数数据集(从 0 到 100)。使用以下代码:

dat=stack(dat)
dat$ind <- factor(dat$ind,levels=rev(unique(dat$ind)))
ggplot(dat, aes(values,ind)) + 
geom_boxplot() + 
xlab("Dimension Score") + 
ylab ("Dimension")

我创建了一个如下所示的图:

现在我需要突出显示每个维度的特定范围:

A: 45 to 60
B: 70 to 85
C: 40 to 55
D: 35 to 50

我该怎么做?预先感谢您的帮助。

使用geom_rect,例如以下。 factor 的 yminymax 对应于它们到整数的映射。这应该可以帮助您入门。

library(ggplot2)

values <- c(
  runif(100,0,100),
  rgamma(100,10,1),
  rnorm(100,50,30),
  rnorm(100,70,10)
  )

ind <- rep(c("A","B","C","D"),each = 100)
dat <- data.frame(values,ind)

rects <- data.frame(
  start = c(45,70,40,35),
  end = c(60,85,55,50),
  ymin = c(0.5,1.5,2.5,3.5),
  ymax = c(1.5,2.5,3.5,4.5),
  group = as.factor(c("A","B","C","D"))
)

dat$ind <- factor(dat$ind,levels=rev(unique(dat$ind)))
ggplot(data = dat) + 
  geom_boxplot(mapping = aes(values,ind)) + 
  xlab("Dimension Score") + 
  ylab ("Dimension") +
  geom_rect(data=rects, inherit.aes=FALSE, aes(xmin=start, 
                                               xmax=end, 
                                               ymin=ymin,
                                               ymax=ymax, 
                                               group=group,
                                               fill=group), 
            color="transparent", , alpha=0.3)

干杯