2016-08-01 30 views
0

Der Datenrahmen hat viele fortlaufende numerische Spalten (z. B. gr) und eine Probenkennung - wellseq. Es gibt viele Datenzeilen für jede wellseq. In einem Datenrahmen gibt es 94 verschiedene Ebenen von wellseq in 10227 Zeilen. Kopfzeilen aus dem Datenrahmen sind:Gestapeltes Histogramm in R ggplot mit 100+ qualitativen Farben

gr wellseq 
1 27.7049  1 
2 31.1149  1 
3 34.5249  1 
4 39.7249  1 
5 44.9249  1 
6 50.1299  1 

Zusammenfassung der Spalte gr ist wie folgt:

summary(GR) 
     gr    
Min. :-6.94  
1st Qu.:10.71 
Median :13.76 
Mean :18.99 
3rd Qu.:20.70 
Max. :98.42 
NA's :55 

Grund Histogramm der gesamten Daten für die gr wird in geeigneter Weise angelegt. Für eine weitere Analyse ist es erforderlich, jeden im Histogramm beitragenden wellseq zu identifizieren. Das ggplot() Skript verwendet wird:

p2 <- ggplot() + theme_bw() + 
     geom_histogram(data=GR, na.rm= TRUE, mapping = aes(x=gr, fill=factor(GR$wellseq)), 
      bins = 10) + scale_color_brewer(palette = "Dark2") + 
     scale_x_continuous(limits = c(-10, 100)) + 
     labs(title=paste("Gamma Ray","Histogram", sep=" ")) + 
     theme(legend.position = "none") 

Sequential Color in Histogram Die resultierende Ausgabe hat Farbe - die "sequenzielle" und nicht die "qualitative" Palette "Dark2" ist. Ich habe versucht, die Antwort in "Wie erzeuge ich eine Anzahl von markantesten Farben in R?" @ stackoverflow.com und erstellte erforderliche Farben.

Dcolor = grDevices::colors()[grep('gr(a|e)y', grDevices::colors(), invert = T)] 
DcolorR <- sample(Dcolor, 433, replace = F) 

scale_colour_manual(values = DcolorR)

gibt das gleiche Histogramm. Unter Verwendung von ..count.. für y zeigt das Histogramm die Grenzen für verschiedene wellseq, füllt aber nicht wie benötigt.

p3 <- ggplot() + theme_bw() + 
    geom_histogram(data=GR, na.rm= TRUE, mapping = aes(x=gr, y= ..count.., col = factor(GR$wellseq), bins = 10)) + 
    scale_colour_manual(values = DcolorR) + 
    scale_x_continuous(limits = c(-10, 100)) + 
    labs(title=paste("Gamma Ray"," Frequency Histogram", sep=" ")) + 
    theme(legend.position = "none") 
fill = 1 # leads to blue colored staked histogram 

..count.. creates discrete boundaries in the bars. Fill is single color Ich versuche, ein Grundstück zu bekommen, wie angebracht. Bitte führen. Danke im Voraus.

Desired Output

+3

Sie verwenden müssen 'füllen =' 'nicht col' = die Füllfarbe zu steuern. Dann ändern Sie 'scale_color_manual' in' scale_fill_manual'. Sehen Sie auch [wie man ein großartiges reproduzierbares Beispiel erstellt] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible) -Beispiel). – C8H10N4O2

Antwort

0

Wenn Sie aes(x=gr, fill=wellseq) dann sollten Sie festlegen, was Sie für die suchen eine Gruppierung der Teilmengen von gr, wie durch ihre Mitgliedschaft in wellseq definiert.

Blick here.Previous einfache Version eines gruppierten Histogramm R histogram with multiple populations