2013-09-27 3 views
-1

Это мой код:Этикетировочное не все точки на графике

A<-read.delim("/Users/macbookair11/Downloads/file.txt",header = T) 
names(A) 
attach(A) 
P<--log10(fdr) 

plot(lfc,P,type="p", 
xlab="log2fc", 
ylab="-log10fdr", 
pch=16, 
xlim=c(-5,5) 
) 
abline(h =(-log10(0.01)), untf = FALSE, col="red") 
abline(v =(log2(2)), untf = FALSE, col="red") 
abline(v =-(log2(2)), untf = FALSE, col="red") 
text(lfc,P, labels=Transcript, cex=0.6, pos=4, col="red") 

мне нужно маркировать не все точки, а только те из них имеют Wich у> 2 и (х < -1 или х> 1) Как я могу изменить свой скрипт, чтобы он работал правильно? Thanks

+0

Тема: http://stackoverflow.com/questions/7611169/intelligent-point-label-placement-in-r предлагает несколько решений. Может быть, один или несколько из них будут соответствовать вашей ситуации? –

+0

Извините, я немного неправильно прочитал вопрос, попробуйте что-то вроде текста (lfc [(lfc> 1 | lfc <(-1)) & P> 2], P [(lfc> 1 | lfc <(-1)) & P> 2], labels = Transcript [(lfc> 1 | lfc <(-1)) & P> 2 ], cex = 0.6, pos = 4, col = "red"). Без фактических данных это не проверено. –

ответ

0

Невозможно показать вам, как это сделать с вашими данными, поскольку оно недоступно; это показывает некоторую условную маркировку «выбросов» из t-теста.

x <- rnorm(100) 
y<- rchisq(100,1) 
plot(x,y, xlim=c(-3.5,3.5)) 
abline(v= c(-1.96, 1.96), col='red') 
abline(h= 3.84, col='red') 
text(x[ abs(x) > 2|y > 3.8], y[abs(x) > 2|y > 3.8]+.15, 
     paste0("(",round(x[ abs(x) > 2|y > 3.8],1), " , ", 
        round(y[ abs(x) > 2|y > 3.8],1), 
       ")")) 
Смежные вопросы