挤压点到R绘图中的绘图轴内

时间:2019-07-16 15:42:19

标签: r bioinformatics

我正在R中绘制一个火山图。我有大量的pvalue和log2fold变化。我设置xlim和ylim是因为我想专注于绘图的中心区域。但是,自然地设置我的限制会排除我的一些数据。我想在我的限制范围内显示超出轴限制范围的数据。因此,例如,倍数变化4将显示为xlim 2之外的一个点。

with(mydata, plot(ExpLogRatio, -log10(Expr_p_value), pch=20, main = "Volcano Plot",xlim=c(-2,2),ylim=c(0,40)))

这有效,但删去了我的一些数据点(倍数变化大于2且小于-2且pvalue小于-log10(40)

1 个答案:

答案 0 :(得分:0)

如果我理解正确,我只会使用pminpmax来限制您的值,例如:

values = seq(-3, 3, len=21)
pmin(pmax(values, -2), 2)

回馈:

 [1] -2.0 -2.0 -2.0 -2.0 -1.8 -1.5 -1.2 -0.9 -0.6 -0.3  0.0  0.3  0.6  0.9  1.2
[16]  1.5  1.8  2.0  2.0  2.0  2.0

即它的限制范围是(-2,+2)。

将此应用于您的数据,您将执行以下操作:

with(mydata, {
  lratio <- pmin(pmax(ExpLogRatio, -2.1), 2.1)
  pch <- ifelse(ExpLogRatio == lratio, 20, 4)
  plot(lratio, -log10(Expr_p_value), pch=pch, ylim=c(0, 40))
})

您可能需要设置xlabmain来设置标题,但是为了保持答案的简洁性,我没有包括在内。而且将其扩展到y轴显然很容易

请注意,我还更改了绘图点样式以指示哪些点被截断了