如何突出显示 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 的 ymin
和 ymax
对应于它们到整数的映射。这应该可以帮助您入门。
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)
干杯
我有一个不同维度(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 的 ymin
和 ymax
对应于它们到整数的映射。这应该可以帮助您入门。
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)
干杯