首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用textxy()标记某些点

用textxy()标记某些点
EN

Stack Overflow用户
提问于 2018-10-23 22:56:42
回答 1查看 434关注 0票数 0

我试图用R中的plot函数和calibrate包在R中绘制火山图,并试图使用textxy函数只绘制某些点。

以下是一些数据:

代码语言:javascript
复制
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))

这是我的代码:

代码语言:javascript
复制
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"))

现在问题是:

代码语言:javascript
复制
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和;我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-23 23:51:39

这似乎是通过选择集合中的项并使用这些字符值作为标记来实现的:

代码语言:javascript
复制
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))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52958871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档