ggplot2 -, Bestell-y-Achse
Habe ich die unter Daten.frame df
. Mein problem hat zu tun mit der Reihenfolge auf der y-Achse. Ich möchte, dass die Namen auf der y-Achse sind geordnet nach der variable depth
.
Wenn ich dies tun:
ggplot(df,aes(x=factor(name),y=depth)) + geom_bar(stat='identity') + coord_flip() + labs(y='depth',x='species')
Bekam ich graph1
unten, die ist nicht bestellt. Daher folgte ich den Anweisungen hier, bestellte ich die Ebenen meines Faktor name
entsprechend Tiefe:
df2=df[order(df$depth),]
df2$name=factor(df2$name,levels=df2$name)
ggplot(df2,aes(x=factor(name),y=depth)) + geom_bar(stat='identity') + coord_flip() + labs(y='depth',x='species')
Bekam ich Graph2
unten. Aber der nächste Schritt für mich war die Farbe der Balken unterschiedlich, je nach Mut
variable.
ggplot(df2,aes(x=factor(name),y=depth)) + geom_bar(stat='identity',data=subset(df2,df2$Mut==2),fill='red') + geom_bar(stat='identity',data=subset(df2,df2$Mut==1),fill='blue') + coord_flip() + labs(y='depth',x='species')
Und ich bekam Graph3
die nicht mehr bestellt!!
Wie kann ich produzieren graph3 Beachtung der Reihenfolge angezeigt, in graph2
name depth Mut x
25 A_rubrocinctus_GA070 8 2 -0.033318659
9 A_omanensis_GA051 10 2 -0.020387101
4 A_latifasciatus_GA083 12 1 -0.005645811
27 A_frenatus_GA068 12 1 -0.024190876
13 A_percula_GA017 15 1 0.034591721
14 A_percula_GA039 15 2 0.034591721
15 A_percula_GA053 15 2 0.034591721
16 A_ocellaris_GA009 15 1 0.052042539
17 A_ocellaris_GA021 15 1 0.052042539
24 A_ephippium_GA057 15 2 -0.016859412
20 P_biaculeatus_GA008 16 1 -0.014466403
21 P_biaculeatus_GA025 16 1 -0.014466403
22 P_biaculeatus_GA065 16 1 -0.014466403
23 A_melanopus_GA034 18 2 -0.026915545
26 A_melanopus_GA012 18 2 -0.026915545
12 A_sandaracinos_GA018 20 1 0.055839755
6 A_nigripes_GA055 25 1 0.023420045
8 A_sebae_GA029 25 1 0.021767793
11 A_akallopisos_GA067 25 1 0.043272525
28 A_akallopisos_GA072 25 1 0.043272525
34 A_akindynos_GA032 25 1 -0.020707141
1 A_polymnus_GA004 30 1 0.030902254
3 A_allardi_GA033 30 1 -0.020277664
5 A_bicinctus_GA036 30 1 -0.025354572
7 A_polymnus_GA019 30 1 0.030902254
32 A_chrysopterus_GA040 30 1 -0.022402365
33 A_chrysopterus_GA031 30 1 -0.022402365
35 A_perideraion_GA020 38 1 0.052830132
36 A_perideraion_GA015 38 1 0.052830132
2 A_tricinctus_GA058 40 1 -0.016230301
18 A_chrysogaster_GA080 40 1 0.012608835
19 A_chrysogaster_GA077 40 1 0.012608835
10 A_latezonatus_GA023 45 1 -0.010718845
31 A_mccullochi_GA056 45 1 -0.031664307
29 A_clarkii_GA044 60 1 -0.014474658
30 A_clarkii_GA010 60 1 -0.014474658
Graph1
Graph2
Graph3
Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Sie haben variable
Mut
in Ihren Daten bestimmt, auf welcher Ebene jeder Beobachtung gehört, brauchen Sie nicht zu verwendengeom_bar()
zweimal mit Teilmenge. Fügen Sie einfachfill=factor(Mut)
innerhalb deraes()
und verwenden df2 mit den bestellten Daten. Balken werden in der richtigen Reihenfolge und Farbe automatisch vorgenommen.Das gleiche Ergebnis kann erreicht werden mit dem ursprünglichen dataframe
df
und Funktionreorder()
innenaes()
für die x-Werte.