Hoe staven in een gestapeld staafdiagram in ggplot2 opnieuw te rangschikken
U kunt de volgende basissyntaxis gebruiken om de positie van staven in een gestapeld staafdiagram in ggplot2 opnieuw te rangschikken:
#specify order of bars (from top to bottom) df$fill_var <- factor(df$fill_var, levels=c(' value1 ', ' value2 ', ' value3 ', ...)) #create stacked bar chart ggplot(df, aes(x=x_var, y=y_var, fill=fill_var)) + geom_bar(position=' stack ', stat=' identity ')
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: Herschik staven in een gestapeld staafdiagram in ggplot2
Stel dat we het volgende gegevensframe in R hebben dat de punten weergeeft die door verschillende basketbalspelers zijn gescoord:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
position=c('G', 'F', 'C', 'G', 'F', 'C', 'G', 'F', 'C'),
points=c(22, 12, 10, 30, 12, 17, 28, 23, 20))
#view data frame
df
team position points
1 AG 22
2 AF12
3 AC 10
4 BG 30
5 BF 12
6 BC 17
7 GC 28
8 CF 23
9 CC 20
Als we een gestapeld staafdiagram maken om de punten te visualiseren die door spelers in elk team zijn gescoord, stapelt ggplot2 de staven automatisch in alfabetische volgorde:
library (ggplot2) #create stacked bar chart ggplot(df, aes(x=team, y=points, fill=position)) + geom_bar(position=' stack ', stat=' identity ')
Houd er rekening mee dat elke gestapelde balk de positie (van boven naar beneden) in alfabetische volgorde weergeeft.
Om de staven op een specifieke manier te herschikken, kunnen we de positievariabele naar een factor converteren en het argument niveaus gebruiken om de volgorde op te geven waarin de staven (van boven naar beneden) in het gestapelde staafdiagram moeten staan:
library (ggplot2) #convert 'position' to factor and specify level order df$position <- factor(df$position, levels=c(' F ', ' G ', ' C ')) #create stacked bar chart ggplot(df, aes(x=team, y=points, fill=position)) + geom_bar(position=' stack ', stat=' identity ')
De staven zijn nu gestapeld (van boven naar beneden) in de exacte volgorde die we hebben opgegeven in het niveau- argument.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in ggplot2 kunt uitvoeren:
Hoe aslabels te roteren in ggplot2
Hoe aseinden in ggplot2 in te stellen
Hoe aslimieten in ggplot2 in te stellen
Hoe legendalabels in ggplot2 te veranderen