2017-12-19 4 views
1

passen Ich habe diese Daten d genannt. Ich verwende den folgenden Code, um die Daten zu plotten, aber der Bereich in X-Achse ist sehr hoch. Wie kann ich die X-Achsenbeschriftungen an die Zeichnung anpassen? Ich möchte sie auch in der Reihenfolge von chr1 bis chr16 in Auftrag geben. Danke für Ihre Hilfe.Wie die Achsenbeschriftungen für Facettengitter mit großer Reichweite in R

d<- structure(list(chr = c("chr10", "chr10", "chr10", "chr11", "chr11", 
"chr11", "chr12", "chr12", "chr12", "chr13", "chr13", "chr13", 
"chr14", "chr14", "chr14", "chr15", "chr15", "chr15", "chr16", 
"chr16", "chr16", "chr1", "chr1", "chr1", "chr2", "chr2", "chr2", 
"chr3", "chr3", "chr3", "chr4", "chr4", "chr4", "chr5", "chr5", 
"chr5", "chr6", "chr6", "chr6", "chr7", "chr7", "chr7", "chr8", 
"chr8", "chr8", "chr9", "chr9", "chr9"), start = c(6, 14, 19, 
3, 10, 16, 60, 73, 80, 4, 11, 27, 67, 75, 81, 2, 7, 15, 13, 99, 
142, 1, 8, 21, 49, 53, 78, 92, 121, 165, 35, 42, 47, 5, 9, 17, 
12, 20, 34, 44, 51, 56, 61, 66, 94, 18, 31, 37), stop = c(6, 
14, 19, 3, 10, 16, 60, 73, 80, 4, 11, 27, 67, 75, 81, 2, 7, 15, 
13, 99, 142, 1, 8, 21, 49, 53, 78, 92, 121, 165, 35, 42, 47, 
5, 9, 17, 12, 20, 34, 44, 51, 56, 61, 66, 94, 18, 31, 37), density = c(10, 
4, 1, 13, 1, 1, 18, 48, 526, 3, 1, 1, 13, 74, 177, 1, 3, 5, 9432, 
3, 5, 1, 32, 1, 60, 4, 3, 2, 1, 10, 4, 10, 6, 6, 2, 3, 5, 65220, 
11136, 1, 25, 36, 5, 6, 1, 4, 7, 11)), .Names = c("chr", "start", 
"stop", "density"), row.names = c(NA, -48L), class = "data.frame") 

mein Code:

library(ggplot2) 
    ggplot(d, aes(start, density)) + 
    geom_line(alpha = 0.9) + 
    facet_grid(. ~ chr) + 
    labs(title = "Density profiles along the chromosomes", 
     x = "Coordinate, bp", 
     y = "Density") + 
    theme_bw() 
+2

Für Ihre zweite Frage: 'df $ chr' ein Faktor sein sollte, finden Sie [hier] (https://stackoverflow.com/questions/14262497/fixing-the-order-of -facts-in-ggplot). Nicht ganz sicher über deine erste Frage, suchst du nach ... + facet_grid (. ~ Chr, scales = "free_x") + ... '? – markus

+0

@markus Ich möchte die Überfüllung von Werten in X-Legende minimieren. – MAPK

+0

Versuchen Sie dies: 'd $ chr <- Faktor (d $ chr, Ebenen = c ('chr1', 'chr2', 'chr3', 'chr4', 'chr5', 'chr6', 'chr7', 'chr8 ',' chr9 ',' chr10 ',' chr11 ',' chr12 ',' chr13 ',' chr14 ',' chr15 ',' chr16 ')) 'Die Levels sind wichtig. – markus

Antwort

0

Ich glaube nicht, es möglich ist, Achse eingestellt für jede Facette Zecken einzeln. Es empfiehlt sich, die Facetten in einem Raster anzuordnen.

d$chr <- factor(d$chr, levels = c('chr1', 'chr2', 'chr3', 'chr4', 'chr5', 'chr6', 'chr7', 'chr8', 
            'chr9', 'chr10', 'chr11', 'chr12', 'chr13', 'chr14', 'chr15', 'chr16')) 

library(ggplot2) 
ggplot(d, aes(start, density)) + 
    geom_line(alpha = 0.9) + 
    facet_wrap(~ chr, nrow = 4, scales = "free_x") + 
    labs(title = "Density profiles along the chromosomes", 
     x = "Coordinate, bp", 
     y = "Density") + 
    theme_bw() 

enter image description here

Verwandte Themen