【问题标题】:Count Points in R scatter plot above/below threshold计数 R 散点图中高于/低于阈值的点
【发布时间】:2017-02-23 16:24:13
【问题描述】:

我有两个标准化为 log2 尺度的 rna seq 数据样本的散点图。我在 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')

【问题讨论】:

  • 我们没有您的数据,因此我们无法运行您的代码来查看红线。
  • 对不起,这是我在这里的第一篇文章。但我不认为数据是必不可少的。根据图表,我想获得上限红线上方的点数和下限红线下方的点数。我的 x 轴由 SRR850589_sorted 的归一化值组成,我的 y 轴由 SRR850604_sorted 的归一化值组成。这有帮助吗?

标签: r plot


【解决方案1】:

对于每个 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)

要计算距离超过 5 个单位的点数:

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

绘制点:

plot(x,y,type="n")
abline(coef(m1))
abline(coef(m1) + c(5,0), col="red")
abline(coef(m1) - c(5,0), col="red")
points(x,y, pch=16, col=ifelse(abs(y - (coef(m1)[1] + coef(m1)[2]*x)) > 5, "blue","red"))

【讨论】:

  • 我已经可以看到OP的下一个问题:如何获得拟合函数? ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 1970-01-01
  • 2020-07-16
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多