我试图用R中的plot函数和calibrate包在R中绘制火山图,并试图使用textxy函数只绘制某些点。
以下是一些数据:
Metabolites <- data.frame(Metabolite = c("Glucose", "Galactose", "Creatine", "Lactose", "N-Acetylputrescine", "Tyramine", "Adenine", "Glycine", "Erythritol", "Choline"), Neg_pvalue = c(10, 8, 2, 1, 0.5, 0.7, 5, 3, 5.8, 4), LogFC = c(4, -3, 2, -1, 0.5, 0.7, 1, -2, -4, -1), padjust = c(1.453557e-19, 5.312771e-08, 4.983176e-02, 9.585447e-01, 2.449707e-01, 3.058580e-01, 4.223173e-02, 1.002379e-03, 4.466316e-27, 1.003879e-01))这是我的代码:
with(Metabolites, plot(LogFC, Neg_pvalue, pch=20, main="CNL", xlim=c(-5,6)))
with(subset(Metabolites, padjust <.05 ), points(LogFC, Neg_pvalue, pch=20, col="blue"))`
with(subset(Metabolites, padjust <.05 & abs(LogFC) > 2), points(LogFC, Neg_pvalue, ph=20, col="red"))现在问题是:
with(subset(Metabolites, padjust <.05 & abs(LogFC) > 2), textxy(LogFC, Neg_pvalue, labs=Metabolite[1:3], cex=.5, offset = 0.2))`如果我绘制这段代码,我只得到前3个数据点,如代码的labs=Metabolite[1:3]部分所示。或者,如果我绘制labs=Metabolite,那么我会得到所有的标签。
如果我只想标出甘氨酸、乳糖和红糖醇在代谢物$代谢物中的标签,我能这样做吗?
另外,假设我想保留我的前三个数据点(labs=Metabolite[1:3]),但也想标记其他感兴趣的代谢物,比如Tyramine和;我该怎么做呢?
发布于 2018-10-23 23:51:39
这似乎是通过选择集合中的项并使用这些字符值作为标记来实现的:
library(calibrate)
with(subset(Metabolites, Metabolite %in% c( 'Glycine', 'Lactose', 'Erythritol' )),
textxy(LogFC, Neg_pvalue, labs=c( 'Glycine', 'Lactose', 'Erythritol' ), cex=.5, offset = 0.2))https://stackoverflow.com/questions/52958871
复制相似问题