2016-12-02 47 views
1

我正在使用在同一张图上绘制两张图的函数。我想将阈值线添加到第一个图中,并在第二个图上添加不同的阈值。我正在使用abline()函数来做到这一点。作为一个例子,以chr6附带一个库。如何在有多个图形时添加阈值线?

install.packages("GenWin") 
library(GenWin) 
chrom_num = 6 
jpeg(filename = paste(chrom_num, ".jpg", sep=""), width = 1200, height = 800) 
chr = splineAnalyze(chr6$Fst, chr6$Position, plotRaw = 1, plotWindows = 1, method = 4) 
abline(0.3, 0, col = "green") 
abline(6, 0, col = "green") 

两条阈值线都显示在第二个图上。如何防止这一点?换句话说,有什么方法可以指导我添加哪些图?

回答

1

如果你想添加一些东西,我认为自己从分析的数据chr(几乎所有的代码都从splineAnalyze中挑选出来)自己绘制图形会更好。这种方法可以让你自定义图形。

analyzed_data <- chr # All you need to do is changing these lines and data and col names of 1st plot()). 
smoothness <- 100  # default value 

jpeg(filename = paste("file_name", ".jpg", sep=""), width = 1200, height = 800) 

par(mfrow = c(2,1)) 

    # 1st graph 
plot(Fst ~ Position, chr6, xlab = "Position (bp)", ylab = "Raw values") 
with(analyzed_data, 
    lines(x = seq(0, max(rawSpline$x), by = smoothness), 
     y = predict(rawSpline, seq(0, max(rawSpline$x), by = smoothness)), col = "red") 
) 
abline(0.3, 0, col = "green") 

    # 2nd graph 
with(analyzed_data, 
    plot(x = (windowData$WindowStop - windowData$WindowStart)/2 + windowData$WindowStart, 
     y = windowData$Wstat, xlab = "Position (bp)", ylab = "Spline Wstat", pch = 19) 
) 
abline(6, 0, col = "green") 

dev.off() 

当然,你可以用它和splineAnalyze(..., plotRaw = 1, plotWindows = 1, ...)添加线条做。

jpeg(filename = paste("file_name2", ".jpg", sep=""), width = 1200, height = 800) 

chr = splineAnalyze(chr6$Fst, chr6$Position, plotRaw = 1, plotWindows = 1, method = 4) 

abline(6, 0, col = "green") # draw on 2nd panel 
layout(matrix(c(2,1), ncol = 1))       # refocus 1st panel 
par(new = T) 
plot(Fst ~ Position, chr6, ann = F, type = "n", axes = F) # reproduce the coordinates 
abline(0.3, 0, col = "green") # draw on 1st panel 

dev.off() 

enter image description here

+0

感谢。我用第二种方式。你是如何访问函数的源代码的? – YKY

+1

@YKY;你可以通过'splineAnalyze'得到它(当你运行没有'()'的函数时,它会返回代码) – cuttlefish44