假设我有一个基于ggplot()
的箱形图,这个箱形图的点在上须和下须之间,如果我只想注解这些点的子集,例如,只注解对应于变量值50及以上或5及以下的点,我该怎么做?
- 编辑**
澄清:我的意思不是注解和指出特定的点高于或低于指定的阈值,而是单独注解每个点,就像用它们各自的值来标记高于和低于阈值的点一样。因此,如果像70这样的值高于上限阈值50,我希望直接在它旁边用"70"来注解该点。
- 编辑2**
按照评论中的建议,我遇到了这个问题:
正如你所看到的,这些彩色的点,应该与那些被stat_summary()函数识别为异常值的点相同,或者实际上不相同,有些点甚至碰到了胡须。
彩色点和箱形图如下所示:
# Function that enables individualizing boxplots
{
Individualized_Boxplot_Quantiles <- function(x) {
r <- quantile(x, probs = c(0.01, 0.25, 0.5, 0.75, 0.99))
names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
r
}
Definition_of_Outliers = function(x)
{
subset(x,
quantile(x,0.99) < x | quantile(x,0.01) > x)
}
}
Data_Above_99th_Percentile = filter(Data,variable_of_interest > quantile(Data$variable_of_interest, probs = 0.99))
Data_Below_1st_Percentile = filter(Data,variable_of_interest < quantile(Data$variable_of_interest,probs = 0.01))
# creation of the individualized boxplots
stat_summary(fun.data = Individualized_Boxplot_Quantiles,
geom="boxplot",
lwd = 0.1) +
stat_summary(fun.y = Definition_of_Outliers,
geom="point",
size = 0.5) +
geom_point(data = Data_Above_99th_Percentile,
colour = "red",
size = 0.5) +
geom_point(data = Data_Below_1st_Percentile,
colour = "red",
size = 0.5)
1条答案
按热度按时间oxcyiej71#
我将通过传递适当的数据子集,使用不同的颜色在新的
geom_point
层中重叠绘制一些点,然后使用相同的子集添加文本标签。