如何在ggplot2生成的箱线图上添加额外的红色指定数据点?
解决方法
你需要先构造一个存储额外待添加点的新数据框,列名和原数据的variable、value保持对应,即可匹配ggplot的映射和分面规则自动添加到对应箱线图上。
完整可运行示例代码
基础数据与绘图环境准备
# 构造原数据 df<- data.frame(c(rep('v1',4),rep('v2',4)),c(1,2,3,4,5,6,7,8)) colnames(df) <- c('variable', 'value') # 加载ggplot2 library(ggplot2)
构造额外指定点的数据框
以下示例为给v1添加值为2.5的点、给v2添加值为7.2的点,你可以自行替换为你需要的指定数值,单个变量需要加多个点的话,补充对应行即可:
extra_points <- data.frame( variable = c("v1", "v2"), value = c(2.5, 7.2) )
最终绘图代码
新增单独绑定额外数据源的geom_point层即可:
j <- ggplot(df, aes(factor(variable), value)) j + geom_boxplot() + # 添加红色指定点,可调整size参数修改点的大小 geom_point(data = extra_points, color = "red", size = 3) + facet_wrap(~variable, scale="free")
补充说明
geom_point支持单独指定data参数,不需要和全局ggplot的数据源一致,只要列名匹配全局的美学映射规则即可- 如果需要修改点的样式,可以额外加
shape参数调整点的形状,加stroke参数调整点的边框粗细
内容的提问来源于stack exchange,提问作者Risk
相关产品推荐
相关产品推荐

