2017-03-27 7 views
0

Ich habe eine Reihe von SNPs mit Allelfrequenzen in fünf Regionen.Plotten von vier Graphen in einem mehrteiligen Plot in ggplot2

In jedem Diagramm ist die Y-Achse die Frequenz in meiner Region von Interesse und die X = -Achse ist die Frequenz in einer Vergleichsregion. Ich habe einzelne Plots, die so aussehen (http://imgur.com/a/jncAh). Jedes Diagramm verfügt über eine eigene Eingabetabelle.

Ich möchte im Grunde alle vier Plots so aussehen() (wenn auch ohne die Färbung oder Legende). Ich frage mich, wie ich das machen soll. Vielen Dank!

Das ist mein in meinem R Code

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() 
} 

Die Eingabetabellen wie folgt aussehen

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

neben Facettieren (die offensichtliche Wahl), einige alternativen Optionen sind hier aufgelistet: https://github.com/baptiste/gridextra/wiki/arranging-ggplot#alternative-options – baptiste

+0

Sie könnten sich das ggplot2 Buch ansehen - es gibt pdfs herum. Es gibt Beispiele dafür. – dash2

+0

Um ein facettiertes Diagramm zu erstellen, "stapeln" Sie Ihre vier Datenframes in ein einzelnes Datenframe und dann können Sie einen einzelnen "ggplot" -Befehl ausführen, um ein Diagramm mit vier Feldern (Facetten) zu erstellen, eines für jede Region. – eipi10

Antwort

1

Es ist schwierig, ein Beispiel mit Ihrem Code zu liefern, aber das cowplot Paket wurde genau geschrieben für Ihre Anwendungsfall. Here's an introduction; Schauen Sie sich den Abschnitt "Grafiken in ein Raster einordnen" an.

+0

Danke! Ich denke, ich habe vielleicht eine [Lösung] gefunden (http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_ (ggplot2) /), aber jetzt muss ich herausfinden, wie man es direkt als PDF exportiert. – MolecularAnthropologist