R散点图中的点数高于/低于阈值

时间:2017-02-23 16:24:13

标签: r plot

我有两个rna seq数据样本的散点图,这些样本归一化为log2标度。我在R工作。我希望大多数值落在x = y线上,但是我有兴趣找到超出该范围的点数以消除“噪音”。如何获得高于和低于某个阈值的点数(即红线:1 + logx,1 + logy)。

plot(log2(data$SRR850589_sorted/19108931*1000000+.5),
             log2(data$SRR850604_sorted/22989410*1000000+.5),
             xlab="log(SRR850589)", ylab="lg(SRR85604)")
abline(0,1,col='cyan')
abline(1,1,col='red')
abline(-1,1,col='red')

1 个答案:

答案 0 :(得分:2)

对于每个x,y对,使用拟合函数确定每个y值与每个x值的拟合线的距离。例如,假设我们要标记距离拟合线至少5个单位的点(垂直方向):




  set.seed( 10)
 x = runif(100,0,10)
 y = 2 * x + 5 + rnorm(100,0,5)
 m1 = lm(y~x)&# xA;  




要获得超过5个单位的点数:




  table(abs(y  - (coef(m1)[1] + coef(m1)[2] * x))> 5)
  

&#xA ;


  FALSE TRUE
 63 37
  






绘制点数:

&#xA;&#xA; < pre> plot(x,y,type =“n”)&#xA; abline(coef(m1))&#xA; abline(coef(m1)+ c(5,0),col =“red “)&#xA; abline(coef(m1) - c(5,0),col =”red“)&#xA; points(x,y,pch = 16,col = ifelse(abs(y - (coef) (m1)[1] + coef(m1)[2] * x))&gt; 5,“蓝色”,“红色”))&#xA; &#xA;&#xA ;

&#xA;