Biologe und ggplot2 Anfänger hier. Ich habe einen relativ großen Datensatz von DNA-Sequenzdaten (Millionen von kurzen DNA-Fragmenten), den ich für jede Sequenz zuerst nach Qualität filtern muss. Ich möchte veranschaulichen, wie viele meiner Lesevorgänge mit einem gestapelten Balkendiagramm mit ggplot2 herausgefiltert werden.Umsortierungsfaktoren für einen gestapelten Barplot in ggplot2
Ich habe herausgefunden, dass ggplot die Daten im Langformat mag und haben erfolgreich mit der Schmelze Funktion von reshape2 umformatiert
Dies ist, was eine Teilmenge der Daten, wie im Moment aussieht:
library sample filter value
LIB0 0011a F1 1272707
LIB0 0018a F1 1505554
LIB0 0048a F1 1394718
LIB0 0095a F1 2239035
LIB0 0011a F2 250000
LIB0 0018a F2 10000
LIB0 0048a F2 10000
LIB0 0095a F2 10000
LIB0 0011a P 2118559
LIB0 0018a P 2490068
LIB0 0048a P 2371131
LIB0 0095a P 3446715
LIB1 0007b F1 19377
LIB1 0010b F1 79115
LIB1 0011b F1 2680
LIB1 0007b F2 10000
LIB1 0010b F2 10000
LIB1 0011b F2 10000
LIB1 0007b P 290891
LIB1 0010b P 1255638
LIB1 0011b P 4538
Bibliothek und Beispiel sind meine ID-Variablen (das gleiche Beispiel kann in mehreren Bibliotheken sein). "F1" und "F2" bedeuten, dass während dieses Schritts viele Lesevorgänge herausgefiltert wurden. "P" bedeutet die verbleibende Anzahl von Lesevorgängen nach dem Filtern.
Ich habe herausgefunden, wie man einen einfachen gestapelten Barplot erstellt, aber jetzt bekomme ich Probleme, weil ich nicht herausfinden kann, wie die Faktoren auf der X-Achse richtig sortiert werden, so dass die Balken in der Plot-Reihenfolge absteigend sortiert sind auf die Summe von F1, F2 und P. die Art und Weise ist es jetzt denke ich, sie sind in alphabetischer Reihenfolge innerhalb Bibliothek sortiert basierend auf Beispielnamen
testdata <- read.csv('testdata.csv', header = T, sep = '\t')
ggplot(testdata, aes(x=sample, y=value, fill=filter)) +
geom_bar(stat='identity') +
facet_wrap(~library, scales = 'free')
Nach einigen googeln ich über die Aggregatfunktion festgestellt, dass gibt mir die Summe für jede Probe pro Bibliothek:
Während dies mir die Summen gibt, habe ich jetzt keine Ahnung, wie ich dies verwenden kann, um die Faktoren neu zu ordnen, vor allem da es zwei sind, die ich berücksichtigen muss (Bibliothek und Probe).
Also meine Frage läuft auf: Wie kann ich meine Proben in meinem Diagramm basierend auf der Summe von F1, F2 und P für jede Bibliothek bestellen?
Vielen Dank für Hinweise, die Sie mir geben können!
Könnte [dies von SO] (http: // Stackoverflow .com/questions/36438883/reorder-stacks-in-horizontal-stacked-barplot-r? rq = 1) dir behilflich sein? – KoenV