Como classificar barras em um gráfico de barras ggplot2
Por padrão, o ggplot2 organiza as barras em um gráfico de barras na seguinte ordem:
- As variáveis fatoriais são classificadas por níveis de fator.
- Variáveis de caracteres são listadas em ordem alfabética.
No entanto, muitas vezes você pode estar interessado em encomendar as barras em outra ordem específica.
Este tutorial explica como fazer isso usando o seguinte quadro de dados:
#create data frame df <- data. frame (team = c('B', 'B', 'B', 'A', 'A', 'C'), points = c(12, 28, 19, 22, 32, 45), rebounds = c(5, 7, 7, 12, 11, 4)) #view structure of data frame str(df) 'data.frame': 6 obs. of 3 variables: $ team: Factor w/ 3 levels "A","B","C": 2 2 2 1 1 3 $ points: num 12 28 19 22 32 45 $rebounds: num 5 7 7 12 11 4
Exemplo 1: Ordene as barras com base em uma ordem de fator específica
Se tentarmos criar um gráfico de barras para exibir a frequência por equipe, as barras aparecerão automaticamente em ordem alfabética:
library (ggplot2) ggplot(df, aes(x=team)) + geom_bar ()
O código a seguir mostra como classificar as barras em uma ordem específica:
#specify factor level order df$team = factor(df$team, levels = c('C', 'A', 'B')) #create bar chart again ggplot(df, aes(x=team)) + geom_bar ()
Exemplo 2: Ordenar barras com base no valor numérico
Também podemos classificar as barras com base em valores numéricos. Por exemplo, o código a seguir mostra como ordenar barras da frequência mais alta para a mais baixa usando a função reorder() :
library (ggplot2) ggplot(df, aes(x= reorder (team, team, function (x)-length(x)))) + geom_bar ()
Também podemos classificar as barras da menor para a maior frequência, removendo o sinal de menos na chamada function() na função reorder() :
library (ggplot2) ggplot(df, aes(x= reorder (team, team, function (x) length(x)))) + geom_bar ()
Recursos adicionais
Documentação para a função geom_bar() .
Documentação para a função reorder() .
Uma lista completa de tutoriais R sobre estatísticas.