2017-03-27 124 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

相关问题