пометить определенные точки с помощью textxy () - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь построить график вулкана в 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))`

ЕслиЯ строю этот код, я получаю только первые три точки данных, как указано в части кода labs=Metabolite[1:3].В качестве альтернативы, если я нанесу labs=Metabolite, то получу все метки.

Если бы я хотел нанести на карту только метки: глицин, лактозу и эритрит, как указано в метаболитах $ Метаболит, могу ли я это сделать?

Также, скажем, я хотел, чтобы мои 3 верхние точки данных были помечены (labs=Metabolite[1:3]), но я также хочу пометить другие представляющие интерес метаболиты, например, тирамин и N-ацетилпутресцин;как я могу это сделать?

1 Ответ

0 голосов
/ 24 октября 2018

Кажется, это работает, если выбрать элементы из этого набора и использовать эти значения символов в качестве меток:

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...