我正在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)
答案 0 :(得分:0)
如果我理解正确,我只会使用pmin
和pmax
来限制您的值,例如:
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))
})
您可能需要设置xlab
和main
来设置标题,但是为了保持答案的简洁性,我没有包括在内。而且将其扩展到y轴显然很容易
请注意,我还更改了绘图点样式以指示哪些点被截断了