2021.04.27【R语言】丨箱线图无法显示解决办法

  • 摘要
    • 箱线图主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比 较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后, 连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数在箱体中间。然而,我们在绘制过程中,会出现不显示的情况(如下图),本篇文章则是解决箱线图无法显示的问题。
    • 图一
  • 环境与方法
    • R version 3.6.1 (2019-07-05)
  • 产生原因
    • 箱线图绘制原始代码
      library(ballgown)
      library(RSkittleBrewer)
      library(genefilter)
      library(dplyr)
      library(devtools)
      FPKM_table = commandArgs(TRUE)
      fpkm = read.table(FPKM_table,header=T,sep="\t",check.names=F)
      fpkm=fpkm[,2:(dim(fpkm)[2])]
      fpkm=pmax(fpkm,0) 
      
      fpkm<-fpkm[which(rowSums(fpkm) > 0),] #方法二
      
      fpkm = log10(fpkm) #方法一
      #fpkm = log2(fpkm)
      
      pdf("box.pdf")
      boxplot(fpkm,las=2,ylab='log10(FPKM)', col=rainbow((dim(fpkm)[2]-1)),cex.axis=0.5)
      
      dev.off()
      代码
      •  
    • 由图一可以发现,每组数据的中位数都小于零,这说明log10的对数值x范围,0<x<1。这是不能显示图片最核心的原因。
  • 解决办法及结果展示
    • 解决办法是使log10里面的值大于1,那么基于初始代码,对于数据有下面两种方法
    • 方法一:
      • fpkm = log10(fpkm+1)
      • 这种方法是在求和基础上+1,使得每一行的和大于1。
      • 结果展示
      • 这种处理方式的问题就是异常值较多,箱线图虽然有填充颜色,但箱型图发生了形变,看起来没有显示出小于零那一部分的结果。
    • 方法二:
      • fpkm<-fpkm[which(rowSums(fpkm) > 1),]
      • 这种方法是直接将过滤值从0上升到1,将求和0<x<1的值也排除掉
      • 结果展示
      • 这个感觉就正常多了。
  • 总结
    • 方法一对所有的求和值进行+1处理会使得整体偏高,但是在对数处理情况下,0<x<1这部分的值影响明显大于1<x的值,因此箱线图发生了形变,看起来中位数并不在箱型图中间。
  •  
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆易青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值