You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中为基因表达数据箱线图的离群值添加样本ID标签

解决方案

核心思路是利用boxplot()函数返回的统计结果,定位离群值对应的样本ID,再通过text()函数添加标签。

步骤1:准备样本ID向量

假设你的原始数据框名为genexp(第一列是样本ID,后续列是基因表达量),先提取样本ID:

sample_ids <- genexp$ID

步骤2:修改箱线图绘制代码

在lapply中,先存储boxplot()的返回结果,从中提取离群值信息,再匹配对应的样本ID并添加标签:

lapply(seq_along(tpose_genexp), function(x){
  # 绘制箱线图并保存返回结果
  bp <- boxplot(tpose_genexp[[x]], 
           horizontal = FALSE,
           lwd = 2,
           col = rgb(1, 0, 0, alpha = 0.4),
           main = colnames(tpose_genexp)[x],
           notch = TRUE, 
           border = "black",
           outpch = 25,
           outbg = "green",
           whiskcol = "blue",
           whisklty = 2,
           lty = 1)
  
  # 定位离群值对应的样本索引
  outlier_indices <- which(tpose_genexp[[x]] %in% bp$out)
  # 获取对应样本ID
  outlier_ids <- sample_ids[outlier_indices]
  
  # 添加离群值标签,微调位置避免重叠
  text(x = rep(1, length(outlier_ids)),
       y = bp$out,
       labels = outlier_ids,
       pos = 4,
       cex = 0.8)
})

补充说明

  • boxplot()返回的bp列表中,bp$out存储所有离群值的数值,可直接用来匹配样本
  • 如果存在重复离群值(多个样本表达量相同且均为离群值),改用match函数更精准:
    outlier_indices <- match(bp$out, tpose_genexp[[x]])
    outlier_ids <- sample_ids[outlier_indices]
    
  • 可调整text()的pos(标签位置:1=下,2=左,3=上,4=右)和cex(标签大小)参数优化显示效果

内容的提问来源于stack exchange,提问作者Daisy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 02:47:36