ggplot2, la Commande de l'axe y
J'ai le dessous des données.cadre df
. Mon problème a à voir avec l'ordre sur l'axe des ordonnées. Je veux que les noms sur l'axe des y sont classés en fonction de la variable depth
.
Si je fais ceci:
ggplot(df,aes(x=factor(name),y=depth)) + geom_bar(stat='identity') + coord_flip() + labs(y='depth',x='species')
J'ai eu graph1
ci-dessous qui n'est pas ordonné. Donc j'ai suivi les instructions trouvées ici, j'ai commandé les niveaux de mon facteur name
en fonction de la profondeur:
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')
J'ai eu Graph2
ci-dessous. Mais la prochaine étape pour moi a été la couleur de la des bars différemment selon le 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')
Et j'ai eu Graph3
qui n'est pas commandé!!
Comment puis-je produire graph3 en respectant l'ordre indiqué dans 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
Merci!!!!
OriginalL'auteur Sulawesi | 2013-08-23
Vous devez vous connecter pour publier un commentaire.
Comme vous l'avez variable
Mut
dans vos données, qui détermine à quel niveau chaque observation appartient, vous n'avez pas besoin d'utilisergeom_bar()
deux fois avec le sous-ensemble. Juste ajouterfill=factor(Mut)
à l'intérieur de laaes()
et l'utilisation df2 avec des données ordonnées. Les barres seront dans le bon ordre et la couleur fait automatiquement.Le même résultat peut être obtenu avec l'original dataframe
df
et de la fonctionreorder()
à l'intérieur deaes()
pour les valeurs de x.OriginalL'auteur Didzis Elferts