2017-03-27 231 views
0

我有一組5個區域中具有等位基因頻率的SNP。在ggplot2的一個多部分圖中繪製四個圖

在每個圖上,Y軸是我感興趣的區域中的頻率,X =軸是比較區域中的頻率。我個人情節看起來像這樣(http://imgur.com/a/jncAh)。每個圖都有自己的輸入表。

我基本上想要安排所有四個地塊看起來像這樣(http://www.nature.com/nature/journal/v522/n7555/fig_tab/nature14507_SF2.html)(儘管沒有着色或圖例)。我想知道如何做到這一點。謝謝!

這是我在我的R代碼裏面

list.R<- c("EastAsia", "Europe", "Oceania", "SouthAsia") 
for (i in list.R){ 
read.table(paste(i,"-Levant",".txt",sep=""), header = F) -> tbl 
colnames(tbl)<-c("CHR", "SNP", "COORD", "CLST1", "MAF1", "CLST2", "MAF2") 

require(ggplot2) 
plot <- ggplot(data = tbl,aes(x = MAF1, y = MAF2)) + geom_point(size=1) + geom_abline(intercept = 0, slope = 1) + coord_fixed() + 
    labs(x = paste("Allele frequency from ",i,sep=""),y = "Allele frequency from the Levant") 

ggsave(plot=plot,height=8,width=8, filename=paste(i,"-Levant",".pdf",sep=""), useDingbats=FALSE) 
plot(plot) 
dev.off() 
} 

輸入表格看起來像這樣

1 rs16823303 2903159 EastAsia 0.2005 Levant 0.05822 
1 rs2742689 2995262 EastAsia 0.04608 Levant 0.1507 
1 rs12024620 3049362 EastAsia 0.04839 Levant 0.02055 
1 rs12022170 3050221 EastAsia 0.04608 Levant 0.02083 
1 rs75872291 3105766 EastAsia 0.125 Levant 0.003425 
1 rs16823548 3140812 EastAsia 0.07834 Levant 0.04795 
+0

除了磨製(顯而易見的選擇),一些替代選項這裏列出:https://github.com/baptiste/gridextra/wiki/arranging-ggplot#alternative-options – baptiste

+0

你可能想看看ggplot2書 - 有pdf的周圍。它給出了這個例子。 – dash2

+0

要創建一個刻面圖,將您的四個數據幀「堆疊」到一個數據框中,然後可以運行一個'ggplot'命令來創建一個包含四個面板(刻面)的繪圖,每個區域一個繪圖。 – eipi10

回答

1

這是很難用你的代碼,以提供一個例子,但cowplot包正是寫給你的用例。 Here's an introduction;查看「將圖表排列成網格」部分。

+0

謝謝!我想我可能已經找到[解決方案](http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_(ggplot2)/),但現在我需要弄清楚如何直接將它作爲PDF導出。 – MolecularAnthropologist

相關問題