2017-07-24 29 views
0

我在努力理解爲什麼ggplotplot產生的數據略有不同。 ggplot包含的inf值最高,而plot則不是。ggplot和plot如何處理inf值的不同?

with(geneFDR, plot(log2(FC), -log10(FDR), pch=20, main="FDR vs. Real FC", 
col=geneFDR$FDRColor)) 

enter image description here

ggplot(data=geneFDR, aes(x=log2(FC), y=-log10(FDR), color=FDRFCthreshold)) + 
    geom_point(alpha=0.4, size=1.75) + 
    ggtitle("FDR vs. Real Fold Change") + 
    xlab("log2 Real Fold Change") + ylab("-log10(FDR)") 

enter image description here

INF值的來源:

min(geneFDR$FDR) 
[1] 0 
max(geneFDR$FDR) 
[1] 0.009883703 

min(-log10(geneFDR$FDR)) 
[1] 2.00508 
max(-log10(geneFDR$FDR)) 
[1] Inf 

如何是默認plot功能處理INF值不同於ggplot

+0

一個更簡單的可重複的例子:'X < - C(0,1,2,Inf文件)''然後積(X)'和'ggplot(data.frame(X),AES (x = 1:4,y = x))+ geom_point()' – thelatemail

+1

看起來'ggplot'認爲圖的上邊界和下邊界(位於軸極限之外)是'Inf'和' - Inf',而'plot'默認忽略'Inf'。 – neilfws

+0

這似乎是一個可疑的設計選擇,因爲你可以用'ggplot(data.frame(x),aes(x = 1:4,y = x))+ geom_line()'來結束,與數據實際表示的角度不同。 – thelatemail

回答

0

嘗試

scale_y_continuous(oob=scales::discard) 
相關問題