Como reorganizar barras em um gráfico de barras empilhadas no ggplot2
Você pode usar a seguinte sintaxe básica para reorganizar a posição das barras em um gráfico de barras empilhadas no ggplot2:
#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 ')
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: Reorganizar barras em um gráfico de barras empilhadas no ggplot2
Suponha que temos o seguinte quadro de dados em R que mostra os pontos marcados por diferentes jogadores de basquete:
#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
Se criarmos um gráfico de barras empilhadas para visualizar os pontos marcados pelos jogadores de cada equipe, o ggplot2 empilhará automaticamente as barras em ordem alfabética:
library (ggplot2) #create stacked bar chart ggplot(df, aes(x=team, y=points, fill=position)) + geom_bar(position=' stack ', stat=' identity ')
Observe que cada barra empilhada exibe a posição (de cima para baixo) em ordem alfabética.
Para reorganizar as barras de uma maneira específica, podemos converter a variável de posição em um fator e usar o argumento de níveis para especificar a ordem em que as barras devem estar (de cima para baixo) no gráfico de barras empilhadas:
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 ')
As barras agora estão empilhadas (de cima para baixo) na ordem exata que especificamos no argumento de níveis .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns no ggplot2:
Como girar rótulos de eixo no ggplot2
Como definir quebras de eixo no ggplot2
Como definir limites de eixo no ggplot2
Como alterar os rótulos das legendas no ggplot2